zoukankan      html  css  js  c++  java
  • ListView设背景

      在Android中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。

      这是为什么呢?

      这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才的画面,有一半是黑色的。

      那怎么办呢?

      如果你只是换背景的颜色的话,可以直接指定 android:cacheColorHint 为你所要的颜色,如果你是用图片做背景的话,那也只要将 android:cacheColorHint 指定为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。最后就不回出现上面所说的你不想要的结果了!

      自定义ListView行间的分割线

      在Android平台中系统控件提供了灵活的自定义选项,所有基于ListView或者说AbsListView实现的widget控件均可以通过下面的方法设置行间距的分割线,分割线可以自定义颜色、或图片。

      在ListView中我们使用属性 android:divider="#FF0000" 定义分隔符为红色,当然这里值可以指向一个drawable图片对象,如果使用了图片可能高度大于系统默认的像素,可以自己设置高度比如6个像素 android:dividerHeight="6px" ,当然在Java中ListView也有相关方法可以设置。

    1)点击Item时无背景颜色变化

     在xml文件中的ListView控件中加入如下属性:

    android:listSelector="@drawable/timer_list_selector" 

     在drawable中定义timer_list_selector的属性值 timer_list_selector.xml中定义如下:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@android:color/transparent" />
    </selector>

     在values文件夹下的colors.xml中定义transparent如下:

    <color name="transparent">#50000000</color>

    2)设置Item之间无间隙

     在xml文件中ListView控件中加入如下属性:

    android:divider="#00000000"

     或者在javaCode中如下定义:

    listView.setDividerHeight(0);

    3)自定义的BaseAdapter中调用notifyDataSetChanged()方法会重新调用BaseAdapter的getView()方法。

     用心的朋友应该会发现,listview中在设置了背景之后会有些问题:

      1.、listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。

      2 、listview的上边和下边有黑色的阴影。

      3、lsitview的每一项之间需要设置一个图片做为间隔。

     针对以上问题 在listview的xml文件中设置一下语句。

      问题1 有如下代码结解决: android:scrollingCache="false"

      问题2 用如下代码解决:android:fadingEdge="none"

      问题3 用如下代码解决: android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一个图片资源

    总体如下:

    <ListView
    android:id="@+id/myListView01"
    android:layout_width="fill_parent"
    android:layout_height="287dip"
    android:fadingEdge="none" 
    android:divider="@drawable/list_driver"
    android:scrollingCache="false"
    android:background="@drawable/list">
    </ListView>
  • 相关阅读:
    UVA 10600 ACM Contest and Blackout(次小生成树)
    UVA 10369
    UVA Live 6437 Power Plant 最小生成树
    UVA 1151 Buy or Build MST(最小生成树)
    UVA 1395 Slim Span 最小生成树
    POJ 1679 The Unique MST 次小生成树
    POJ 1789 Truck History 最小生成树
    POJ 1258 Agri-Net 最小生成树
    ubuntu 用法
    ubuntu 搭建ftp服务器,可以通过浏览器访问,filezilla上传文件等功能
  • 原文地址:https://www.cnblogs.com/laxlerbo/p/3860287.html
Copyright © 2011-2022 走看看