2014-04-18 26 views
0

我有一个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,这是背景的项目(不textviews,图像):

<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:背景值的颜色,它工作正常,那么问题肯定是每当listview刷新时,它必须加载drop_shadow .xml drawable。 我的问题是,如果它可以以某种方式进行优化?例如,与在项目中使用自定义字体的情况相同,我必须创建一个TypefaceCahce并从中加载字体,所以只需要在每次列表视图刷新时加载一次。是否有类似的drawables解决方案?

+0

可以添加你是如何获得在列表视图适配器的意见。 – mha90

回答

0

尝试在你的ListView XML添加这些:

android:scrollingCache="false" 
android:animationCache="false" 
相关问题