我遇到了问题,问题是我有一个ListView
,我想在ListView
上设置背景图片。我设法使用background
中的XML
属性实现了此目的,并将cacheColorHint
设置为#00000000
。
如果我将cacheColorHint
变为透明色,则滚动性能会显着下降。在Android智能手机上,ListView
效果很好,但在Android平板电脑上,ListView
移动速度非常慢。
我用作Drawable
的图像大小约为500x800px(平板电脑的大小),手机的大小较小。我试图设置一个较小的图像(就像手机一样),但它是一样的。
我的图片屏幕底部只有一个标识,大约有100px height
,其余为白色。
有人知道如何让ListView
正常工作或至少更好吗?
谢谢!
答案 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
)相比,很多更便宜。