Android
ベクトル描画可能ファイル
サーチ…
前書き
この名前が示すように、ベクトル描画はベクトルグラフィックに基づいています。ベクトルグラフィックスは、幾何学図形を使用してグラフィック要素を記述する方法です。これにより、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