开发中我们会动态设置控件的背景颜色和字体颜色,拿Burron和Radiobutton举例
一、Button
1.设置背景
button.setBackgroundResource(R.drawable.button_shape1);
在在res下drawable 文件夹下创建 button_shape1 如下:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#ffffff" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="6dip" />
<!-- padding:Button里面的文字与Button边界的间隔 -->
<padding
android:left="4dp"
android:top="2dp"
android:right="4dp"
android:bottom="2dp"
/>
<!-- 边框 -->
<stroke android:width="1dp" android:color="@color/color_text_selected" />
2.设置字体颜色
button.setTextColor(getResources().getColor(R.color.color_text);
二、Radiobutton
1.去掉Radiobutton的小圆圈
button.setButtonDrawable(R.color.transparent);
有些人使用:
button.setButtonDrawable(null);这样不起作用,应该传入资源文件
2.设置点击颜色改变背景
button.setBackgroundResource(R.drawable.button_shape);
在res下drawable 文件夹下创建 button_shape2 如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/button_shape1" /> <item android:state_checked="false" android:drawable="@drawable/button_shape2" /> </selector>3.设置点击字体颜色改变
button.setTextColor(getResources().getColorStateList(R.color.color));
在在res下color文件夹下创建color 如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="@color/color_text_selected"/> <!-- not selected --> <item android:state_checked="false" android:color="@color/color_text_normal"/> </selector>
注意:这里使用
button.setTextColor(getResources().getColor(R.color.color));
不起作用!!