SetButtonDrawable
Androidアプリケーションでは、xmlファイルを使用してチェックボックスの背景色を変更できることがわかっています。
このxmlファイルは、グラデーションまたはドローアブルの画像を使用した単純なファイルで定義できます。この記事では、グラデーションのサンプルを示します:Android:チェックボックスの色を設定します
また、これは私が使用した別のサンプルです:
<item android:state_checked="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="#9b9b9b" />
<corners android:radius="5dp" />
</shape>
</item>
<item android:top="2dp" android:left="1.5dp" >
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="5dp" />
<size android:height="20dp" android:width="20dp" />
</shape>
</item>
<item android:top="2dp" android:bottom="1dp" android:left="1.5dp">
<shape android:shape="rectangle">
<gradient android:startColor="#ff7dbce9" android:endColor="#ff2578b3" android:angle="270" />
<corners android:radius="5dp" />
<size android:height="20dp" android:width="20dp" />
</shape>
</item>
<item android:top="2dp" android:bottom="1dp" android:left="1.5dp">
<shape android:shape="rectangle">
<gradient android:startColor="#ff7dbce9" android:endColor="#ff2578b3" android:angle="270" />
<corners android:radius="5dp" />
<size android:height="20dp" android:width="20dp" />
</shape>
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/tick_red_icon"/>
</item>
</layer-list>
</item>
<item >
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="#9b9b9b" />
<corners android:radius="5dp" />
</shape>
</item>
<item android:top="2dp" android:left="1.5dp" >
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="5dp" />
<size android:height="20dp" android:width="20dp" />
</shape>
</item>
<item android:top="2dp" android:bottom="2dp" android:left="1.5dp">
<shape android:shape="rectangle">
<solid android:color="#e5e4e4" />
<corners android:radius="5dp" />
<size android:height="20dp" android:width="20dp" />
</shape>
</item>
</layer-list>
</item>
DrawableGradient
また、グラデーションの色を変更したい場合は、実行時にそれを定義してから、これを使用する必要があることもわかっています。
DrawableGradient
問題はこれです:実行時に色を変更する機能を持つように、上記のようないくつかの複雑なグラデーションをどのように定義できますか?
または、悪い解決策がある場合、チェックボックスの背景色を設定し、実行時にそれらの色を変更できるより良い解決策はありますか?