ListView性能优化+异步加载图片
一、绪论
相信大家在Android开发中肯定会经常用到ListView吧,那么怎么优化ListView呢?尤其是每个item里面中还有图片需要加载,数据源比较多,如果处理不好的话,在滑动ListView的过程中肯定会遇到卡顿的现象,做了这么久的开发,自己多少也摸索到了一些规律,接下来就给大家详细的介绍一下ListView的性能优化。
二、思路:
1.利用ViewHolder
我们自己定义一个ViewHolder,存放我们item中的组件,减少不必要的findViewById(),把我们的控件引用存在里面,利用view.setTag()存放在view里面,下次就可以直接取了。说一下setTag()是干什么用的吧,就是给View一个标签,下次getView()的时候我们可以根据标签获取这个View,如果标签存在了,就不需要再创建了,也就不再需要重新初始化那些组件了。
2.异步加载图片
我们在ListView中异步加载图片,可以使用一些第三方API来加载图片,比较好用的是ImageLoader,Xutils里面的BitmapUtils也可以。
3.设置LitView滑动时禁止加载图片
如果我们在滑动ListView的时候也要加载图片,那么滑动时肯定会卡顿
三、详解:
1.定义ListView
我们先看一下布局,item的每一项内容
<span style="font-size:14px;"><span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/middler_space"
android:background="#fff"
android:id="@+id/llImage"
>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="#cccccc"
android:layout_marginLeft="15dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:focusable="false"
android:layout_marginTop="@dimen/middler_space"
/>
<ImageView
android:layout_marginTop="@dimen/middler_space"
android:id="@+id/iv_filelist_vedio"
android:src="@d