Giter VIP home page Giter VIP logo

mrvector's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.