回答:
ベクトルドローアブルをアプリに統合する最も簡単な方法です。ベクトルドローアブルを使用すると、複数のpngアセットを、XMLで定義された単一のベクトルグラフィックに置き換えることができます。以前はLollipop以上のデバイスに限定されていましたが
注意
とおりAndroidのサポートライブラリ23.3.0、サポートベクタードロワブルは、のみを介してロードすることができますapp:srcCompat
。
vectorDrawables.useSupportLibrary = trueをbuild.gradle
ファイルに追加する必要があります
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
このImageViewのコンテンツとしてドローアブルを設定します。元のサイズで表示されます。自動スケーリングなし。
build.gradle
、まだ機能していません。
build.gradleファイルandroid:src="@drawable/some_vector"
なしvectorDrawables.useSupportLibrary = true
で使用していて、アプリにベクター画像(ベクタードローアブル)がある場合、apkファイルの作成中にAndroid gradleプラグインはさまざまな画面(hdpi、xhdpi ...)の多数の* .pngファイルを生成しますそれぞれのベクタードローアブル(API = <19の場合のみ)。結果-apkのサイズが大きくなります。
使用している場合app:srcCompat="@drawable/some_vector"
にvectorDrawables.useSupportLibrary = true
発生することなく、Androidの用途ベクトル描画可能ファイル*.png
のファイルを。
これは、Android Studio APK分析ツールで確認できます。あり、なしでapkをビルドするだけvectorDrawables.useSupportLibrary = true
です。
これが主な違いだと思います。
使用する:
app:srcCompat="@drawable/backImage"
srcCompat属性は、実際にはAppCompatライブラリ内で定義されています。重要:これには適切な名前空間を追加する必要があります。
xmlns:app="http://schemas.android.com/apk/res-auto"
注意
取得しているのは、無視できるlintエラーのようです。同じエラーが発生しましたが、正常に機能しています。
使用できます tools:ignore="MissingPrefix"
一時的にこのエラーが表示されないするために。
これがお役に立てば幸いです。
使用しているときAppCompat
にImageView
(またはサブクラスなどImageButton
とFloatingActionButton
)、あなたは新しい使用することができますapp:srcCompat
(に利用可能な他の描画可能だけでなく、プラットフォームの旧バージョンの参照ベクトルドローアブルに属性をandroid:src
)。
android.support.v7.appcompat.R.attr.srcCompat:
srcCompat
このImageViewのコンテンツとしてドローアブルを設定します。古いバージョンのプラットフォームで実行するときにベクタードローアブルを使用できます。
フォーム内の別のリソースへの参照、
"@[+][package:]type/name"
またはフォーム内のテーマ属性の場合があり"?[package:]type/name"
ます。
xmlns:app="http://schemas.android.com/apk/res-auto"
使用時に追加することを忘れないでくださいapp:srcCompat
。
app:srcCompat="some_resource"
サポートライブラリに含まれるのはAppCompatActivity srcであるということです
android:src="some_resource"
単純な活動を指します。
使用しているときAppCompat
にImageView
(またはサブクラスなどImageButton
とFloatingActionButton
)、あなたは新しい使用することができますapp:srcCompat
参照ベクトルドロワブルに属性(同様に利用可能な他の描画可能にandroid:src
)。実行時にドローアブルを変更する場合はsetImageResource()
、以前と同じメソッドを使用できます(変更はありません)。
AppCompat
およびを使用するとapp:srcCompat
、ベクタードローアブルをアプリに統合する最も簡単な方法です。Lollipopのapp:srcCompat
前に、外部のベクタードローアブルを直接参照すると失敗することがわかります。