###@Deprecated
Unfortunatenly this library is no longer maintained, we encourage you to use first party VectorDrawableCompat coming soon to support library.
Mr. Vector
AKA VectorDrawableCompat: A 7+ backport of VectorDrawable.
Demo
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="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:auto="http://schemas.android.com/apk/res-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 directlyloadDrawable
, which sadly is key) - Get rid of
auto
namespace, useandroid
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:
License & About
See LICENSE file, logo built from opoloo/androidicons.