サーチ…


前書き

この名前が示すように、ベクトル描画はベクトルグラフィックに基づいています。ベクトルグラフィックスは、幾何学図形を使用してグラフィック要素を記述する方法です。これにより、XMLベクトルグラフィックに基づいてドロウアブルを作成できます。今では、mdpi、hdpi、xhdpiなどのために異なるサイズのイメージを設計する必要はありません。Vector Drawableを使用すると、イメージをxmlファイルとして1回だけ作成し、すべてのdpiと異なるデバイスに対してイメージを作成する必要があります。これもスペースを節約するものではなく、メンテナンスも簡単です。

パラメーター

パラメータ詳細
<vector> ベクトルドロアブルを定義するために使用されます。
<group> パスまたはサブグループのグループと変換情報を定義します。変換は、ビューポートと同じ座標で定義されます。そして、変換はスケールの順に適用され、回転して翻訳されます。
<path> 描画されるパスを定義します。
<clip-path> パスを現在のクリップに定義します。クリップパスは現在のグループとその子にのみ適用されます。

備考

build.gradleファイルを更新します。

dependencies {
    ...
   compile 'com.android.support:appcompat-v7:23.2.1'
}

Gradleプラグインの v2.0以上を使用している場合は、次のコードを追加してください。

// Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Gradleプラグインの v1.5以下を使用している場合は、次のコードを追加してください。

// Gradle Plugin 1.5  
 android {  
   defaultConfig {  
     generatedDensities = []  
  }  

  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 }

詳しくは、 Androidサポートライブラリ23.2リリースノートをお読みください。

注: AppCompatを使用していても 、Vector Drawablesは古いAndroidバージョンではアプリの外で動作しません 。たとえば、アプリケーションではなくシステムによって処理されるため、ベクター描画可能オブジェクトを通知アイコンとして渡すことはできません。回避策については、 この回答を参照してください。

VectorDrawableの使用例

AppCompatで実際に使用しているベクトル資産の例を次に示します。

res / drawable / ic_search.xml

<vector xmlns:android="..."
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0"
        android:tint="?attr/colorControlNormal">

    <path
        android:pathData="..."
        android:fillColor="@android:color/white"/>

</vector>

このDrawableを使用すると、 ImageView宣言の例は次のようになります。

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/ic_search"/>

実行時に設定することもできます:

ImageView iv = (ImageView) findViewById(...);
iv.setImageResource(R.drawable.ic_search);

同じ属性と呼び出しがImageButtonでもImageButtonます。

VectorDrawable xmlの例

次に、このvectordrawable.xmlファイルの単純なVectorDrawable示します。

 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:height="64dp"
     android:width="64dp"
     android:viewportHeight="600"
     android:viewportWidth="600" >
     <group
         android:name="rotationGroup"
         android:pivotX="300.0"
         android:pivotY="300.0"
         android:rotation="45.0" >
         <path
             android:name="v"
             android:fillColor="#000000"
             android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
     </group>
 </vector>

VectorDrawableとしてのSVGファイルの読み込み

Android StudioでSVGファイルをVectorDrawableとして読み込むには、次の手順を実行します。

resフォルダを右クリックし、 新規 > ベクター資産を選択します。

ここに画像の説明を入力

[ ローカルファイル ]オプションを選択し、.svgファイルを参照します。あなたの好みにオプションを変更し、次のヒット。完了しました。

ここに画像の説明を入力



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow