プリアンブル
私は30分前からg00glingしていますが、私は本当に重要なものを見逃しているようです。(Expandable)ListAdapterの下でImageViewの色合いを設定するには?
注:は、私はすでにこれらの質問
How to change color of vector drawable path on button click
How to set tint for an image view programmatically in android?
Changing ImageView sourceのためのソリューションを試したこれらのソリューションは、ALL ImageViewのをSRCS色を変更いずれか、または、彼らは行いません。何でも(ベクトルは黒のままです)。
私の描画可能な材料iconsディレクトリからベクトル資産である:
<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="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2z" />
</vector>
マイImageViewの:
<ImageView
android:id="@+id/gradeBullet"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="25.5dp"
android:layout_marginTop="25.5dp"
app:srcCompat="@drawable/importantgrade" />
私も思いますので、私は、*のcompatでこれをやりたいです以前のAPI(API> 17)をサポートしています。
マイImageViewの:ImageView gradeBullet = convertView.findViewById(R.id.gradeBullet);
てみI.
MyAmazingAdapter.java - getChildView(...)
gradeBullet.setColorFilter(ContextCompat.getColor(context, gradeObj.colorId), PorterDuff.Mode.MULTIPLY);
結果:何もしません。
Try II。
MyAmazingAdapter.java - getChildView(...)
DrawableCompat.setTint(gradeBullet.getDrawable(), ContextCompat.getColor(context, R.color.myColor));
結果:すべてを復色します。
Try III。
MyAmazingAdapter.java - getChildView(...)
VectorDrawableCompat drawable = (VectorDrawableCompat) gradeBullet.getDrawable();
drawable.setTint(ContextCompat.getColor(context, gradeObj.colorId));
gradeBullet.setImageDrawable(drawable);
結果:奇妙な色を与えます。 (間違いなく私が望むものではなく、元の色に近い)
IVを試してください。
上記のすべては、final
グレードのバレットで、同じ結果が得られました。
いくつかの他の情報
gradeObj.colorId
がごと childView異なっています。- SVGの代わりに図形と
setColor
を使用すると、ではなく、となります。 - あなただけのコメントでそれを言及、より多くの情報が欲しい場合は26
- MyAmazingAdapter.javaが
BaseExpandableListAdapter
を拡張LVL現在はAPIを使用してテスト。
大変ありがとうございます! 'SRC_ATOP'が機能しました! – ForceMagic
あなたは歓迎です、私はより多くの説明のためのドキュメントのリンクを追加します:) – Cochi