在设置视图的背景或者设置字体的颜色时,总会遇到各种问题,特别是用代码来设置时,下面进行一一说明
一、设置背景颜色——单一颜色设置
设置单一颜色有两种方式:
1.定义颜色资源,然后引用资源1.定义颜色资源,然后引用资源
定义颜色资源(在res→values→colors文件中增加定义):
<resources>
<color name="white">#ffffff</color>
</resources>
在xml布局文件中的设置:
android:background="@color/white"
在代码中设置:
view.setBackgroundColor(getResources().getColor(R.color.white));
2.直接使用rgb颜色
在xml布局中的设置:
android:background="#ffffff"
在代码中设置:
view.setBackgroundColor(Color.parseColor("#ffffff"));
或者
view.setBackgroundColor(Color.rgb(0xff, 0xff, 0xff));
二、设置背景颜色——根据状态的多种颜色设置
需要先将颜色定义为drawable资源,然后定义选择器的drawable资源,最后才能设置
将颜色定义为drawable资源(在res→values→colors或drawable中增加定义):
<resources>
<drawable name="red">#ff0000</drawable>
<drawable name="green">#00ff00</drawable>
</resources>
定义选择器的drawable资源(在res→drawable文件夹中增加定义的资源文件,假设资源文件的名称为selector):
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/drawable1"/>
<item android:state_pressed="false" android:drawable="@drawable/drawable2"/>
</selector>
具体状态可根据实际情况更改。
在xml布局中设置:android:background="@drawable/selector"
在代码中设置:
view.setBackgroundResource(R.drawable.selector);
三、设置背景图片——单一图片
将图片复制进工程,然后进行设置。
假设图片名为drawable_1
在xml布局文件中设置:
android:background="@drawable/drawable_1"
在代码中设置:
view.setBackgroundResource(R.drawable.drawable_1);
四、设置背景图片——根据状态的多张图片设置
定义选择器的图片资源,然后进行设置
定义选择器的图片资源(在res→drawable文件夹中增加定义的资源文件,假设资源文件名为btn_selector):
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
<item android:drawable="@drawable/button_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/button_normal"/>
</selector>
状态可根据具体情况设置
在xml中设置:
android:background="@drawable/btn_selector"
在代码中设置:
view.setBackgroundResource(R.drawable.btn_selector);
五、设置字体颜色——单一颜色
设置单一颜色有两种方式:
1.定义颜色资源,然后引用资源1.定义颜色资源,然后引用资源
定义颜色资源(在res→values→colors文件中增加定义):
<resources>
<color name="white">#ffffff</color>
</resources>
在xml布局文件中设置:
android:textColor="@color/white"
在代码中设置:
view.setTextColor(getResources().getColor(R.color.white));
2.直接使用rgb颜色
在xml布局文件中设置:
android:textColor="#ffffff"
在代码中设置:
view.setTextColor(Color.parseColor("#ffffff"));
或者
view.setTextColor(Color.rgb(0xff, 0xff, 0xff));
六、设置字体颜色——根据多种状态不同颜色的设置
需要先将颜色定义为color资源,然后定义选择器的color资源,最后才能设置
将颜色定义为color资源(在res→values→colors文件中增加定义):
<resources>
<color name="red">#ffff0000</color>
<color name="blue">#ff0000ff</color>
</resources>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="@color/red"/>
<item android:state_pressed="false" android:color="@color/blue"/>
</selector>
状态可根据实际情况更改。
在xml布局文件中设置:
android:textColor="@color/text_color_selector"
在代码中设置:
view.setTextColor(getResources().getColorStateList(R.color.rb_text_selector));