Skip to content

Repository files navigation

###@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

Drawabledrawable = 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

<vectorxmlns: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"
>
<pathauto: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,
\\ ...
);
}}
\\ ...
@OverrideprotectedvoidattachBaseContext(ContextnewBase) {
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

About

[Deprecated] AKA VectorDrawableCompat: A 7+ backport of VectorDrawable

Resources

Stars

644 stars

Watchers

44 watching

Forks

Releases

Packages

Used by

Contributors

Languages