控件设置颜色、资源等问题
1、Drawable资源的使用:
在xml中: android:background="@drawable/xxx"
在java中:ImageView image = (ImageView)findViewById(R.id.xxx);
Image.setImageResource(R.drawable.xxx);//这个资源可以是drawable-xxhdpi底下的资源图片
也可以是drawable文件夹中的***.xml文件,比如按钮的常态,选中态的xml文件。
如果设置图片发现设置前后两张图片重合了,
src属性和bakground属性叠加了
在布局文件中,把Imageview的background属性,改为src属性,就可以了
或者你把mview.setImageResource的方法改为mview.setBackground方法
1 <?xml version="1.0" encoding="utf-8"?>
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3
4 <item android:drawable="@drawable/job_menu_on" android:state_enabled="true" android:state_pressed="false"/>
5 <item android:drawable="@drawable/job_menu_off" android:state_enabled="true" android:state_pressed="true"/>
6
7 </selector>
StateListDrawable 资源文件同图片资源一样,也是放在res/drawable-xxx目录中。
StateListDrawable 资源文件定义在XML文件中的Drawable对象,能根据状态来呈现不同的图像。
根元素为<selector></selector>,在该元素中可以包括多个<item></item>元素。
每个Item元素可以设置以下两个属性。
◆ android:color或android:drawable:用于指定颜色或者Drawable资源;
◆ android:state_xxx:用于指定一个特定的状态。
android:state_active:表示是否处于激活状态,属性值为true或false
android:state_checked:表示是否处于勾选状态,属性值为true或false
android:state_enabled:表示是否处于可用状态,属性值为true或false
android:state_first:表示是否处于开始状态,属性值为true或false
android:state_focused:表示是否处于获得焦点状态,属性值为true或false,编辑框选中与否
android:state_last:表示是否处于结束状态,属性值为true或false
android:state_middle:表示是否处于中间状态,属性值为true或false
android:state_pressed:表示是否处于被按下状态,属性值为true或false
android:state_selected:表示是否处于被选择状态,属性值为true或false
android:state_window_focused:表示窗口是否已经得到焦点状态,属性值为true或false
2、
--颜色(color)资源
--必须以“#”开头,接下来是:A(透明度)-R-G-B 如果透明度省略了,则是不透明的。
- 1、#RGB: #F00 红色
- 2、#ARGB: #6F00 半透明的红色
- 3、#RRGGBB: #0000FF 蓝色
- 4、#AARRGGBB #6600FF00 半透明的绿色
--定义颜色资源文件:
<resources>
<color name="title1">#6600ff00</color>
<color name="title2">#60f0</color>
<color name="title3">#0f0</color>
</resources>
在.java中使用方法:
text.setTextColor(getResources().getColor(R.color.title1));
text.setTextColor(0xffff00ff);//参数必须为8个的颜色
text.setTextColor(android.graphics.Color.RED);//系统自带的颜色类
在XML:android:textColor="@color/title1"
3、
--尺寸:
<resources>
<dimen name="title">24px</diemn>
</resources>
获取尺寸大小:
text.setTextSize(getResources().getDimension(R.diemn.title))