androidでsvgを使用


0x01. gradleバージョン
v2.0以上
0x02. appcompatバージョン
下より高くてもいいです
compile 'com.android.support:appcompat-v7:23.2.0'

0x03. build.gradle
moduleのbuidlでgradleに次の属性を追加します.
defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }

0x04. リソースの使用
  • 0x01. AppCompatImageView
  • の使用
    代替:ImageViewはAppCompatImageView
    app:android:srcの代わりにsrc Compat
    .support.v7.widget.AppCompatImageView
                android:id="@+id/xxx_aiv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_gravity="right"
                app:srcCompat="@drawable/xxx_svg_icon"
                android:visibility="visible"/>
  • 0x02. ImageView
  • の使用
    <ImageView
                android:id="@+id/xxx_aiv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_gravity="right"
                android:src="@drawable/xxx_svg_icon_selector"
                android:visibility="visible"/>

    Android:src属性では、互換性によるクラッシュを避けるためにdrawable/xxx_svg_iconファイルの参照をselectorに入れる必要がある.
    xxx_svg_icon_selector.xml
    
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/xxx_svg_icon_normal" android:state_pressed="true"/>
        <item android:drawable="@drawable/xxx_svg_icon_press"/>
    selector>

    PS:Buttonコントロールの属性使用はselector方式でリソースを使用する.
    0x04. Activityでの処理
    svgリソースを使用するactivityでは、以下の属性を使用する.
    static {
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    }

    svgの画像は自分で変換する必要があります
             Module,    New
        |
        ------Vector Asset
                 |
                 ------  Local file
                             |
                         ------          
                         |
                         ------  Override(      )
                         |
                         ------drawable      xml