一、ListView的item背景(自定义颜色)
通常情况下,ListView的item背景用的是图片资源,下面跟大家分享一下使用颜色资源,即自定义一种颜色,当item聚焦、按压、选择的时候,可以显示我们自定义的颜色,好了废话不多说,直接分享代码:
1.首先在drawable目录下面新建一个list_item_color.xml,自定义我们需要的颜色
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle" >
- <solid android:color="#87CEFF" /> <!-- 自定义为蓝色 -->
- </shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#87CEFF" /> <!-- 自定义为蓝色 -->
</shape>
2.继续在drawable目录下新建一个list_item_bg.xml,在这里使用我们自定义的颜色,
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@drawable/list_item_selcet_color" android:state_pressed="true"/> <!-- 按压时变成我们自定义的颜色 -->
- <item android:drawable="@drawable/list_item_selcet_color" android:state_selected="true"/> <!-- 选择时变成我们自定义的颜色 -->
- </selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_item_selcet_color" android:state_pressed="true"/> <!-- 按压时变成我们自定义的颜色 -->
<item android:drawable="@drawable/list_item_selcet_color" android:state_selected="true"/> <!-- 选择时变成我们自定义的颜色 -->
</selector>
3.在layout目录下item布局文件中使用我们的背景,我这里是home_listview_item.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/list_item_select_bg" 将我们自定义的设置为背景即可,
- android:orientation="vertical"
- android:padding="5dp" >
- <!-- 此处省略n行-->
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_item_select_bg" 将我们自定义的设置为背景即可,
android:orientation="vertical"
android:padding="5dp" >
<!-- 此处省略n行-->
</LinearLayout>
好了,大功告成,回去上传效果图,我知道童鞋们都喜欢看图,有图有真相嘛。
二、按压item时改变字体颜色
我们应该都见过类似的效果,就是当我们按下ListView的item时,在发现item背景颜色改变的同时,字体也会变色,其实实现起来也是很简单的。
1.在color目录下新建一个list_view_item_black_color.xml文件,
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:color="#000000"/> <!-- 聚焦时为黑色 -->
- <item android:state_pressed="true" android:color="#ffffff"/> <!-- 按下时为白色 -->
- <item android:state_selected="true" android:color="#000000"/> <!-- 选择时为黑色 -->
- <item android:color="#000000"/> <!-- 普通状态下为黑色 -->
- </selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#000000"/> <!-- 聚焦时为黑色 -->
<item android:state_pressed="true" android:color="#ffffff"/> <!-- 按下时为白色 -->
<item android:state_selected="true" android:color="#000000"/> <!-- 选择时为黑色 -->
<item android:color="#000000"/> <!-- 普通状态下为黑色 -->
</selector>
2.在layout资源目录下使用:
- <!-- 此处上下省略n行 -->
- <TextView
- android:id="@+id/home_item_content"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:padding="2dp"
- android:text="今天心情很好"
- android:textColor="@color/list_view_item_black_color"
- android:textSize="18sp" />
<!-- 此处上下省略n行 -->
<TextView
android:id="@+id/home_item_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="今天心情很好"
android:textColor="@color/list_view_item_black_color"
android:textSize="18sp" />
好了,很简单,当做自己留下的笔记,备忘。
原文地址:http://blog.youkuaiyun.com/way_ping_li/article/details/8116113
另加上:
一般我们都是使用布局文件直接加载到Activity,从而覆盖了Activity的颜色。这里没有加载布局文件(没有用R.layout.main)
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.bkcolor);
this.getWindow().setBackgroundDrawable(drawable);
}
}
需要注意的是 需要在value目录下的string.xml文件中加入一段代码,如下
<drawable name="bkcolor">#ff00ff</drawable>
本文介绍如何在Android中使用自定义颜色资源来改变ListView项的背景颜色及文字颜色,包括创建颜色资源文件、状态选择器及应用到布局文件的具体步骤。
348

被折叠的 条评论
为什么被折叠?



