Android ListView背景图片优化

时间:2012-01-05 18:18:41

标签: java android xml listview drawable

我遇到了问题,问题是我有一个ListView,我想在ListView上设置背景图片。我设法使用background中的XML属性实现了此目的,并将cacheColorHint设置为#00000000

如果我将cacheColorHint变为透明色,则滚动性能会显着下降。在Android智能手机上,ListView效果很好,但在Android平板电脑上,ListView移动速度非常慢。

我用作Drawable的图像大小约为500x800px(平板电脑的大小),手机的大小较小。我试图设置一个较小的图像(就像手机一样),但它是一样的。

我的图片屏幕底部只有一个标识,大约有100px height,其余为白色。

有人知道如何让ListView正常工作或至少更好吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我设法通过关闭白色并将徽标图像设置到ImageView来优化ListView的速度。

现在是我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
          android:layout_height="fill_parent" 
          android:background="@color/white">

<ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY"
           android:src="@drawable/background_img" android:layout_alignParentBottom="true"/>

<ListView android:layout_width="fill_parent" android:layout_height="fill_parent"
       android:drawSelectorOnTop="false" android:cacheColorHint="#00000000"
       android:smoothScrollbar="true" android:scrollingCache="true"/>

答案 1 :(得分:0)

她正在寻求实施:

LayerDrawable- 一个Drawable,管理其他Drawables数组。这些是按数组顺序绘制的,因此具有最大索引的元素将绘制在顶部。

OR

使用Frame布局来实现所需的效果。 http://tinyurl.com/82ycrpd

答案 2 :(得分:0)

不幸的是,除了使用图像作为背景的 not 的明显解决方案之外,您已经尽力optimize ListView。您可以尝试的一件事是将cacheColorHint设置为图像中最显性颜色。

我的意思是,查看上一个链接中的 book 示例,您可以将cacheColorHint颜色设置为某种橙色,这将导致您的滚动操作与设置为透明(#00000000)相比,很多更便宜。