Chinaunix
标题:
ColorStateList的第一个参数为什么要用二维数组?(我觉得一维就够了)
[打印本页]
作者:
风情123
时间:
2012-07-31 14:39
标题:
ColorStateList的第一个参数为什么要用二维数组?(我觉得一维就够了)
问题描述如下:
在使用TextView控件的setTextColor方法时发现ColorStateList的实现关于第一个参数要用二维数组的,但是我觉得一维的就足够了,不知道为什么的?
使用如下
:
情况一:
1.main.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android
rientation="vertical" >
<TextView
android:id="@+id/textview_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:focusable="true"
android:clickable="true"
android:background="#FFFFFF"
/>
</LinearLayout>
2..java文件内容如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ColorStateList colors = new ColorStateList(
new int[][] {{ android.R.attr.state_pressed},{ android.R.attr.state_focused}, {0}},
new int[] { Color.RED ,Color.GREEN, Color.BLUE});
mTextView.setTextColor(colors);
}
预期结果:
启动后文本显示颜色为蓝色;
单击TextView控件,颜色变为红色;
按方向键(向下)(目的是让TextView获取焦点)显示颜色为绿色
实际结果:此时与预期结果一致
情况二
:
1.main.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android
rientation="vertical" >
<TextView
android:id="@+id/textview_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:focusable="true"
android:clickable="true"
android:background="#FFFFFF"
/>
</LinearLayout>
2..java文件内容如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ColorStateList colors = new ColorStateList(
new int[][] {{ android.R.attr.state_pressed, android.R.attr.state_focused},{0}},
new int[] { Color.RED , Color.BLUE});
mTextView.setTextColor(colors);
}
预期结果
:
启动后文本显示颜色为蓝色;
单击TextView控件,颜色变为红色;
按方向键(向下)(目的是让TextView获取焦点)显示颜色为红色
实际结果
:
启动后文本显示颜色为蓝色;
单击TextView控件,颜色变为
蓝色
;
按方向键(向下)(目的是让TextView获取焦点)显示颜色为
蓝色
请大家帮忙分析下是什么原因?多谢了~
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2