Features

Min SDK : 14

Price : Free

Language : Java

Download

Link : Github

Owner : telly

Source Code : Download


###@Deprecated Unfortunatenly this library is no longer maintained, we encourage you to use first party VectorDrawableCompat coming soon to support library.

Mr. Vector

Mr. Vector AKA VectorDrawableCompat: A 7+ backport of VectorDrawable.

Demo

Le demo Mr. Vector Demo on Google Play Store

Usage

See demo, at this point latest version looks like
compile 'com.telly:mrvector:0.2.0'

Basic inflate

Drawable drawable = MrVector.inflate(getResources(), R.drawable.vector_android);
Unfortunately due some inflate weirdness (able to read some correctly but not others) for now (will fix promise) you'll have to duplicate (sucks I know) all your android: attributes, in example: Note: you must put auto attributes before android attributes (See #5) Furthermore: you can use online convertor svg to VectorDrawable + MrVector scheme support
<vector xmlns:android=""
xmlns:tools=""
xmlns:auto=""
tools:targetApi="21"
auto:width="@dimen/simple_vector_width"
auto:height="@dimen/simple_vector_height"
auto:viewportWidth="@integer/simple_vector_viewport_width"
auto:viewportHeight="@integer/simple_vector_viewport_height"
android:width="@dimen/simple_vector_width"
android:height="@dimen/simple_vector_height"
android:viewportWidth="@integer/simple_vector_viewport_width"
android:viewportHeight="@integer/simple_vector_viewport_height"
>
<path
auto:strokeColor="@color/simple_vector_stroke_color"
auto:strokeWidth="@integer/simple_vector_stroke_width"
auto:pathData="@string/simple_vector_path_data"
android:strokeColor="@color/simple_vector_stroke_color"
android:strokeWidth="@integer/simple_vector_stroke_width"
android:pathData="@string/simple_vector_path_data"
/>
</vector>

Inflate from Layout (WIP)

Use it as a regular drawable:
<!-- menu.xml -->
<!-- ... -->
android:icon="@drawable/vector_drawable"
<!-- ... -->
<!-- layout.xml -->
<!-- ... -->
android:src="@drawable/vector_drawable"
<!-- ... -->
And then from your Application or Activity:
\ ...
{{
MrVector.register(
R.drawable.vector_drawable,
R.drawable.another_vector_drawable,
\ ...
);
}}
\ ...
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(MrVector.wrap(newBase));
}
\ ...

Roadmap

Right now only basic inflating works, this is the list of features planed:
  • Put this in GH issues.
  • Full inflate from layout support (partially implemented except for TypedArray calling directly loadDrawable, which sadly is key)
  • Get rid of auto namespace, use android namespace as much as possible (no duplicated attributes).
  • Tint support.
  • Animation support (AnimatedVectorDrawable).
On the long run, it would be nice to see (but no promises):
  • Per node animation.
  • Additional SVG support (e.g. using svg-android or svgandroid).
  • SVG animation support.
###Applications using Mr.Vector: WatchMe

License & About

See LICENSE file, logo built from opoloo/androidicons. From @eveliotc @ Telly