Design Support Library 23.2を使用しています。私のGradleプラグインはバージョン1.5なので、これらの行をbuild.gradleに追加しました
defaultConfig {
applicationId "com.abc.xyz"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
generatedDensities = []
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
here で指定されているとおり
ただし、imageviewにsrcCompat属性を使用できません。
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:srcCompat="@drawable/wallpaper"/>
@ drawable/wallpaperはベクターリソースファイルです
<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:width="24dp"
Android:height="24dp"
Android:viewportWidth="24.0"
Android:viewportHeight="24.0">
<path
Android:fillColor="#FF000000"
Android:pathData="M4,4h7V2H4c-1.1,0 -2,0.9 -2,2v7h2V4zm6,9l-4,5h12l-3,-4 -2.03,2.71L10,13zm7,-4.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S14,7.67 14,8.5s0.67,1.5 1.5,1.5S17,9.33 17,8.5zM20,2h-7v2h7v7h2V4c0,-1.1 -0.9,-2 -2,-2zm0,18h-7v2h7c1.1,0 2,-0.9 2,-2v-7h-2v7zM4,13H2v7c0,1.1 0.9,2 2,2h7v-2H4v-7z"/>
それは言います
エラー:(14)パッケージ 'Android'の属性 'srcCompat'のリソース識別子が見つかりません
私のGradleバージョンは1.5です。 srcCompatを使用するにはどうすればよいですか?
しない
Android:srcCompat="@drawable/wallpaper"
実行
app:srcCompat="@drawable/wallpaper"
そのままsrcCompat属性はAppCompatライブラリ内で実際に定義されています。
重要このために適切な名前空間を追加する必要があります。
xmlns:app = "http://schemas.Android.com/apk/res-auto"
重要
あなたがそれを取得しているのは、無視できる単なるリントエラーのようです。私は同じエラーを試してみましたが、正しく機能しています。
tools:ignore="MissingPrefix"
を使用して、このエラーが一時的に表示されないようにすることができます。
多くの回答を1つの回答にまとめる:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
Android:background="@color/primary">
<Android.support.v7.widget.AppCompatImageView
Android:layout_width="300dp"
Android:layout_height="100dp"
Android:id="@+id/logoImageView"
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
app:srcCompat="@drawable/my_logo_vector"
Android:tint="@color/white"
/>
</RelativeLayout>
これは私のために働いた。リントエラーはありません。 AppCompatImageView
を使用します。
最初(build.gradle内)
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
第二
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_traffic_black_24dp"
tools:ignore="MissingPrefix" />
三番
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
さあ。
app:srcCompat
の代わりにAndroid:srcCompat
を呼び出します。
しない
Android:srcCompat="@drawable/your_image"
DO
app:srcCompat="@drawable/your_image"
最後に
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:srcCompat="@drawable/wallpaper"/>
Gradleバージョンをアップグレードします。
ソリューション
Gradle Plugin 2.0+
com.Android.tools.build:gradle:2.0.0-beta2
ベクタードロウアブルを使用すると、複数のpngアセットをXMLで定義された単一のベクターグラフィックに置き換えることができます。以前はLollipop以降のデバイスに限定されていましたが、VectorDrawableとAnimatedVectorDrawableの両方が、2つの新しいサポートライブラリsupport-vector-drawableとsupport-animated-vector-drawableで利用できるようになりました。
これを追加
// Gradle Plugin 2.0+
Android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
この新しい属性は、Gradleプラグインのバージョン2.0にのみ存在することに注意してください。 Gradle 1.5を使用している場合は、代わりにを使用します
// Gradle Plugin 1.5
Android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
Go ThroughSupport Vector Drawables
まず最初に気をつけなければならないことがいくつかあります:
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
または
vectorDrawables {
useSupportLibrary = true
}
第二に使用
<Android.support.v7.widget.AppCompatImageView
Android:id="@+id/changeLanguages"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
Android:adjustViewBounds="true"
Android:background="@color/transparent"
Android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_transfer" />
Simple ImageViewではベクター画像がサポートされていないため、常にAppCompatImageViewまたはButtonを使用してください
上記のすべての方法が機能しない場合は、使用します
public class App extends Application {
@Override public void onCreate() {
super.onCreate();
// Make sure we use vector drawables
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
}
アクティビティを使用している場合は、AppCompatActivtyでアクティビティを拡張します
public final class MainActivity extends AppCompatActivity {
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
私はちょうど変更しました:
app:srcCompat="@drawable/wallpaper"
に
Android:src="@drawable/wallpaper"
これは私のために働いた。
Android:srcCompat
を使用しています。 app:srcCompat
名前空間内ではなく、AppCompat内で定義された属性であるため、代わりにAndroid:
を使用する必要があります。
使用しようとしている画像がPNG形式であることを確認してください。
画像をコピーします。
Android階層の1.Project TABのミップマップに移動します。
ミップマップを1回クリックしてから(Windowsではctrl + v)、写真に名前を付けるときは、小文字で記号がないことを確認してください。
写真は使用できるはずです。
イメージビューを設定します(一時的にフィラーカラーを使用する必要がある場合があります)。
ImageViewをクリックし、srcCompactをクリックします(ペイントブラシなしで@ mipmap/"Your pictures name"と入力します(この手順は属性タブにあります)
それはうまくいくはずです!
コンテンツの説明が必要な場合は、@ String/StringPictureを使用しました
gradleプラグインを2.0+に更新する
// Gradle Plugin 1.5
Android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
グーグル開発者のブログのガイドラインに従って
http://Android-developers.blogspot.in/2016/02/Android-support-library-232.html
From、 Androidデベロッパーサイト
このライブラリはv7 AppCompat library
の依存関係になり、開発者とAppCompatがベクタードロウアブルを簡単に使用できるようになりました。
ImageButtonまたはImageView内でVectorDrawableCompatを使用するには、app:srcCompat XML属性またはsetImageResource()メソッドを使用します。
APIレベル20以下で属性IDを参照し続けるには、次のapptフラグをbuild、gradleファイルに追加します。
Gradle 1.5.0以前のAndroidプラグインでビルドしている場合、build.gradleファイルに以下を追加します。
Android {
defaultConfig {
// Stops the Gradle’s automatic rasterization of vectors
generatedDensities = []
}
// Flag that tells aapt to keep the attribute ids
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
Gradle 2.0.0以降のAndroidプラグインを使用してビルドする場合は、build.gradleファイルに以下を追加します。
Android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
追加する必要があります
xmlns:app = "http://schemas.Android.com/apk/res-auto"
レイアウトに合わせて機能します。 「app:srcCompat」は、追加するまで赤で強調表示されていました。