Android 创建具有动态颜色的自定义xml绘图
我需要在Android中创建一个自定义单选按钮,具有以下自定义可绘制背景: 我可以为选定和未选定创建不同的绘图。下面是选中时可绘制的xmlAndroid 创建具有动态颜色的自定义xml绘图,android,android-layout,Android,Android Layout,我需要在Android中创建一个自定义单选按钮,具有以下自定义可绘制背景: 我可以为选定和未选定创建不同的绘图。下面是选中时可绘制的xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:android="http://schemas
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="20dp" android:height="20dp"/>
<solid android:color="@color/white"/>
<stroke android:width="1dp" android:color="#ff207d94"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<stroke android:color="@android:color/transparent"
android:width="9dp"/>
<solid android:color="#ff207d94"/>
<size
android:width="7dp"
android:height="7dp"/>
</shape>
</item>
我的要求是动态更改所选单选按钮的颜色,即边框和内部的纯色应相同。使用当前的xml,我无法实现这一点,因为item1的笔划为#ff207d94颜色,而item2的笔划为#ff207d94颜色
我在任何地方都找不到这个问题的确切解决办法。有什么办法可以做到这一点吗?我想这对你有帮助吗
作者:snail
资料来源:CSDN
原文:HTTPS://blog.csdn.net/zuolongsnail/article/details/7106586我想这对你有帮助吗
作者:snail
资料来源:CSDN
原文:HTTPS://blog.csdn.net/zuolongsnail/article/details/7106586你可以试试这个
LayerDrawable shape = (LayerDrawable) ContextCompat.getDrawable(context, R.drawable.drawable_res);
GradientDrawable gradient = (GradientDrawable) shape.findDrawableByLayerId(R.id.item_id);
gradient.setColor(ContextCompat.getColor(context, color_res));
你可以试试这个
LayerDrawable shape = (LayerDrawable) ContextCompat.getDrawable(context, R.drawable.drawable_res);
GradientDrawable gradient = (GradientDrawable) shape.findDrawableByLayerId(R.id.item_id);
gradient.setColor(ContextCompat.getColor(context, color_res));
谢谢这正是我想要的。由于某些原因,第一次单击时,单选按钮的颜色设置正确。我只需要更改为
LayerDrawable shape=(LayerDrawable)getButtonDrawable()代码>谢谢。这正是我想要的。由于某些原因,第一次单击时,单选按钮的颜色设置正确。我只需要更改为LayerDrawable shape=(LayerDrawable)getButtonDrawable()代码>
<CheckBox
android:id =“@ + id / select_all”
android:layout_width =“wrap_content”
android:layout_height =“wrap_content”
style =“@ style / CustomCheckboxTheme”/>
LayerDrawable shape = (LayerDrawable) ContextCompat.getDrawable(context, R.drawable.drawable_res);
GradientDrawable gradient = (GradientDrawable) shape.findDrawableByLayerId(R.id.item_id);
gradient.setColor(ContextCompat.getColor(context, color_res));