我有一个listview
的项目有一些花哨的阴影背景,我这样定义:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Drop Shadow Stack -->
<item>
<shape>
<padding android:top="1.2dp" android:right="1.2dp" android:bottom="1.2dp" android:left="1.2dp" />
<solid android:color="#02000000" />
<corners android:radius="8dp" />
</shape>
</item>
<item>
<shape>
<padding android:top="1.2dp" android:right="1.2dp" android:bottom="1.2dp" android:left="1.2dp" />
<solid android:color="#05000000" />
<corners android:radius="7dp" />
</shape>
</item>
</layer-list>
这很有用,但是将它作为列表视图项目的背景应用会使其性能变差,从而减慢它的速度。对于我在item.xml中定义背景的项目,这是(没有textview,图像):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/drop_shadow"
android:orientation="horizontal"
>
如果我将android:background值设置为颜色,它可以正常工作,所以问题肯定是每次listview
刷新时,都必须加载drop_shadow
。xml drawable。
我的问题是它是否可以以某种方式进行优化?例如,它与在项目中使用自定义字体的情况相同,我必须创建一个TypefaceCahce并从中加载字体,因此它只需要加载一次而不是每次listview刷新时。是否有类似的drawables解决方案?
答案 0 :(得分:0)
尝试在ListView XML中添加这些:
android:scrollingCache="false"
android:animationCache="false"