ベクタードローブをに、Android StudioのImageViewに設定します。ImageViewの画像としてVectorDrawableをプログラムで設定する方法
私はpngとjpg drawableを簡単に設定できますが、VectorDrawableを設定したい場合は、imageviewでは動作しません。
img.setImageResource(R.drawable.ic_home);
ic_homeはVectorDrawableで、このコードは機能しません。
ベクタードローブをに、Android StudioのImageViewに設定します。ImageViewの画像としてVectorDrawableをプログラムで設定する方法
私はpngとjpg drawableを簡単に設定できますが、VectorDrawableを設定したい場合は、imageviewでは動作しません。
img.setImageResource(R.drawable.ic_home);
ic_homeはVectorDrawableで、このコードは機能しません。
公式android developer blogによると、実行時にvectorDrawablesのsetImageResource()メソッドに変更はありません。
あなたは、実行時にドローアブルを変更している場合は、以前と同じ setImageResource() メソッドを使用することができます - そこに変化なし。 AppCompatとapp:srcCompatを使用すると、 アプリにベクトルドロアブルを統合する最も簡単な方法です。
詳細については、Google DeveloperのAppCompat — Age of the vectorsをご覧ください。
後方互換性に懸念がある場合は、pfイメージ表示の代わりにAppCompatImageView
を使用する必要があります。以下のコードを見てください。
<android.support.v7.widget.AppCompatImageView
android:id="@+id/iv_about"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
javaの
AppCompatImageView image = (AppCompatImageView) findViewById(R.id.iv_about);
image.setImageResource();
そして、それはapp:srcCompat
の視点を提供します。
ドキュメントによれば、「これはレイアウトでImageViewを使用するときに自動的に使用され、トップレベルのアクティビティ/ダイアログはappcompatによって提供されます。カスタムビューを作成するときには、このクラスを手動で使用する必要があります。 拡張しない限りImageViewだけを使用できます。 – Adrian
@ user924あなたは正しいです。 –
@ user924アクティビティがAppCompatActivityを継承している限り、ImageViewを使用できるとは指定していませんでした。あなたがしなければ、あなたが言ったようなものです。 – Adrian
あなたはベクトルドローアブルを使用したい場合(API 21未満またはそれ以上)だけで次の操作を行います
imageView.setImageResource(R.drawable.ic_left_arrow_blue);
またはXMLによって:
は、プログラム(例えば、あなたの活動の)画像を設定します。あなたのアプリのbuild.gradle
で
app:srcCompat="@drawable/your_vector_name"
あなたは含める必要があります。
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
そしてAPI 21少ないし、ベクタサポートのため、onCreate
に次の行を追加します。
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
私はimg.setImageResource(R.drawable.ic_home)使用したリサイクルビューでベクトルを持っていましたいくつかの他のイメージのように正常に動作しませんでしたリサイクルビューのいくつかの項目で形成された後私は使用img.setImageDrawable(activity.getResources()。getDrawable(R.drawable.ic_home))これは働いた。
使用android.support.v7.widget.AppCompatImageButton、android.support.v7.widget.AppCompatImageView、 android.support.v7.widget。代わりのImageButton、ImageViewの等のAppCompatTextViewベクトル型の画像が使用される場合。
主にカスタムビューです。
https://blog.stylingandroid.com/vectordrawables-part-1/ –
私はここに答えました。これが役立つかもしれません。あなたは今ベクトル描画可能を変更することができます。 http://stackoverflow.com/a/42281780/4517450 –