172

Android Studio のベクター アセットを使用してアイコンを追加した ImageView を作成すると、次の行でエラーが発生します。app:srcCompat="@drawable/ic_play"

を に変更するapp:srcCompatandroid:src、エラーはなくなりましたが、アイコンがピクセル化されて見えます。

主な違いは何ですか

app:srcCompat="@drawable/ic_play"

android:src="@drawable/ic_play"
4

8 に答える 8

12

使用する:

app:srcCompat="@drawable/backImage"

srcCompat 属性は、実際には AppCompat ライブラリ内で定義されています。重要: これには適切な名前空間を追加する必要があります。

xmlns:app="http://schemas.android.com/apk/res-auto"

ノート

あなたが得ているのは、無視できるリントエラーのようです。私は試してみましたが、同じエラーが発生しましたが、正しく動作しています。

tools:ignore="MissingPrefix"一時的にこのエラーが表示されないようにするために使用できます。

これが役立つことを願っています。

于 2016-11-16T05:26:38.593 に答える
9

AppCompatwith (またはやImageViewなどのサブクラス)を使用する場合、 new属性を使用して、プラットフォームの古いバージョン (および で利用可能なその他のドローアブル)でベクター型ドローアブルを参照できます。ImageButtonFloatingActionButtonapp:srcCompatandroid: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

于 2016-12-27T08:53:03.590 に答える
4

ベクトルとアニメーション化されたベクトルは、フレームワークの最近のバージョンでのみサポートされていました。srcCompat を互換性ライブラリと共に使用して動作させることができますが、これはサポート ライブラリの特定のビューでのみ動作します。app: が android: の代わりに使用されていることに注意してください。これは、フレームワークの一部ではなく、アプリによって定義されたパラメーターであることを意味します。

于 2016-11-16T05:21:06.550 に答える