Android之 ListView滑动时不加载图片
生活随笔
收集整理的這篇文章主要介紹了
Android之 ListView滑动时不加载图片
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
listview加載圖片優(yōu)化的功能,
在我們使用新浪微博的時(shí)候,細(xì)心的同學(xué)一定發(fā)現(xiàn)了,在滑動的過程中,圖片是沒有被加載的,
而是在滑動停止時(shí),才加載圖片了。
我們今天就做一個(gè)這樣的效果吧。
我們先考慮兩個(gè)問題:
1、在滑動停止的時(shí)候,如何獲得需要加載的圖片控件?
2、因?yàn)閘istiew在初始化完成的時(shí)候,OnScrollListener的onScrollStateChanged與onScroll并未被觸發(fā),如何初始化第一頁的圖片?
package com.test.list;import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView;public class Test<a target="_blank" href="http://www.2cto.com/kf/yidong/Android/" class="keylink" style="border:none; padding:0px; margin:0px; color:rgb(51,51,51); text-decoration:none; font-size:14px">Android</a>ListActivity extends Activity {private int start_index, end_index;// 判斷是否是初始化private boolean isInit = false;private ListView list;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);this.initList();}private BaseAdapter adapter = new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubView v;if (convertView == null) {v = getLayoutInflater().inflate(R.layout.list_item, null);v.setTag(v);} else {v = (View) convertView.getTag();ImageView iv = (ImageView) v.findViewById(R.id.img);iv.setImageResource(R.drawable.ic_launcher);}ImageView iv = (ImageView) v.findViewById(R.id.img);// 給圖片控件設(shè)置上對應(yīng)的位置編號iv.setTag(position);if (!isInit) {iv.setImageResource(R.drawable.update_log);}return v;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 140;}};private void initList() {// TODO Auto-generated method stublist = (ListView) this.findViewById(R.id.list);list.setAdapter(adapter);list.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// TODO Auto-generated method stubisInit = true;switch (scrollState) {case OnScrollListener.SCROLL_STATE_IDLE:// 滑動停止for (; start_index < end_index; start_index++) {ImageView img = (ImageView) list.findViewWithTag(start_index);img.setImageResource(R.drawable.update_log);}break;default:break;}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {// TODO Auto-generated method stub// 設(shè)置當(dāng)前屏幕顯示的起始index和結(jié)束indexstart_index = firstVisibleItem;end_index = firstVisibleItem + visibleItemCount;}});} }
總結(jié)
以上是生活随笔為你收集整理的Android之 ListView滑动时不加载图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之android.os.D
- 下一篇: Android官方开发文档Trainin