白い背景を持つxmlで定義された描画可能な楕円があります。textView
この円をgridAdapter 内のバックグラウンド リソースとして設定しています。
コードで描画可能な円の色を変更したいのですが、あまり運がありません。.setColor
、.setColorFilter
および他のさまざまなハックを使用しましたが、どれも機能しませんでした。円は白textView
のように背景に読み込まれ、変化することはありません。
ここでは、drawable を読み込んでその色を変更し、それを背景リソースとして に追加しようとしていますtextView
。
int color = Color.parseColor(locationModel.col_line_color); // Color of the line
GradientDrawable bgcircle = (GradientDrawable) gridContext.getResources().getDrawable(R.drawable.circle);
bgcircle.mutate();
// bgcircle.setColor(color);
bgcircle.setColorFilter(color, Mode.SRC_ATOP);
viewHolder.textView.setText((locationModel.col_line).toString());
viewHolder.textView.setBackgroundResource(R.drawable.circle);
描画可能な形状の XML:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="@android:color/white"/>
<size
android:width="120dp"
android:height="120dp"/>
</shape>
多くのチュートリアルで.mutate()
は を実装する.setColorFilter()
必要がありますが、あまり運がありませんでした。PorterDuff モードをいくつかの代替手段に変更しようとしましたが、円は引き続き白くレンダリングされます。
ヘルプ/ガイダンスをいただければ幸いです。