android listview 滑動過程中不載入圖片,停止時載入圖片

來源:互聯網
上載者:User

標籤:android   class   blog   c   code   tar   

今天閑來無事,

就測試了一下listview載入圖片最佳化的功能,

在我們使用新浪微博的時候,細心的同學一定發現了,在滑動的過程中,圖片是沒有被載入的,

而是在滑動停止時,才載入圖片了。

我們今天就做一個這樣的效果吧。

我們先考慮兩個問題:

1、在滑動停止的時候,如何獲得需要載入的圖片控制項?

2、因為listiew在初始化完成的時候,OnScrollListener的onScrollStateChanged與onScroll並未被觸發,如何初始化第一頁的圖片?

 

 

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 TestAndroidListActivity 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);// 給圖片控制項設定上對應的位置編號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// 設定當前螢幕顯示的起始index和結束indexstart_index = firstVisibleItem;end_index = firstVisibleItem + visibleItemCount;}});}}

 

 

其實很簡單,大家可以研究研究,舉一反三哈!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.