Android 开发笔记 ListView异步加载图片
当ListView需要在线获取数据,并且列表中需要显示图片时,友好的处理方式是使用异步加载图片的方式。
这是因为LIstView中显示的内容是分为两部加载的,第一次加载文本信息(包含图片的uri地址),第二次使用图片的uri下载图片到本地显示。
如果一次性获取文本信息与图片,将要较长时间加载,用户等待太久。
以下为代码实现:
xml文件,list.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/img_your_circle"
android:layout_marginBottom="50dp"
android:layout_marginLeft="13dp"
android:layout_marginRight="13dp"
android:divider="@null"
android:dividerHeight="5dp"
android:fadingEdge="none"
android:listSelector="@android:color/transparent"
android:scrollbars="none" >
</ListView>
</RelativeLayout>
list_item.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/layout_background"
android:padding="10dp" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txt_icon"
android:layout_alignLeft="@+id/txt_icon"
android:layout_alignRight="@+id/txt_icon"
android:layout_alignTop="@+id/txt_icon"
android:layout_centerVertical="true" >
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<ImageView
android:id="@+id/txt_icon"
android:layout_width="90dp"
android:layout_height="90dp"
android:scaleType="fitXY"
android:visibility="invisible" />
<TextView
android:id="@+id/txt_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignTop="@+id/txt_icon"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/imageView1"
android:layout_toRightOf="@+id/txt_icon"
android:ellipsize="end"
android:maxLines="2"
android:minLines="2"
android:textColor="#000000" />
<TextView
android:id="@+id/txt_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txt_icon"
android:layout_alignLeft="@+id/txt_title"
android:layout_alignRight="@+id/txt_title"
android:ellipsize="end"
android:maxLines="2"
android:minLines="2" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/list_arrow" />
</RelativeLayout>
java文件,ListActivity.java
public class ListActivity extends Activity {
.....
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.list);
super.onCreate(savedInstanceState);
list = (ListView) findViewById(R.id.list);
getResource();
}
}
list项中加入圆形进度条,在图片还未加载完时,进度条一直在滚动,当图片显示时,将遮住它。
posted on 2012-08-13 23:54 linvaluable 阅读(224) 评论(0) 收藏 举报
浙公网安备 33010602011771号