开发中我们会动态设置控件的背景颜色和字体颜色,拿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));
不起作用!!