天天看點

清單視圖(ListView和ListActivity)

在ListView中顯示網絡圖檔

 ImageView 類雖然有一個 setImageUri 方法,但不能直接接受一個由網絡位址生成的uri作為參數進而顯示圖檔,我們隻好使用其 setImageBitmap 方法來轉換。 

我們來做一個如下的文章列顯示:

清單視圖(ListView和ListActivity)

先聲明一個類文章類來初始化資料:

清單視圖(ListView和ListActivity)
清單視圖(ListView和ListActivity)

其中getPhoto方法根據URL用來獲得線上圖檔,傳回對應的Bitmap。

制造資料,一般來說是從網絡上獲得,此處為了友善手工造:

清單視圖(ListView和ListActivity)
清單視圖(ListView和ListActivity)

然後生成SimpleAdapter需要的資料:

清單視圖(ListView和ListActivity)
清單視圖(ListView和ListActivity)

ListView中item布局:

清單視圖(ListView和ListActivity)
清單視圖(ListView和ListActivity)

還需要一個ListView,此處我用了一個list_separator_line圖檔來分隔上下行:

清單視圖(ListView和ListActivity)
清單視圖(ListView和ListActivity)

在SimpleAdapter中需要一個資料源,用來存儲資料的,在顯示圖檔時我們要用HashMap<>存儲一個Bitmap;但僅存取了Bitmap時在ListView中是無法顯示圖檔的,我們需要對SimpleAdapter進行處理 。

如下是對SimpleAdaptr處理的主要代碼

清單視圖(ListView和ListActivity)
清單視圖(ListView和ListActivity)

然後給ListView綁定,MainActivity完整代碼:

清單視圖(ListView和ListActivity)

  

      // 添加點選事件

listView.setOnItemClickListener(new OnItemClickListener() {

      @Override

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

// 獲得選中項的HashMap對象

HashMap<String, Object> map = (HashMap<String, Object>) listView.getItemAtPosition(arg2);

String title = map.get("itemTitle").toString();

String content = map.get("itemAuthor").toString();

Toast.makeText(getApplicationContext(), "你選擇了第" + arg2 + "個Item,itemTitle的值是:" + title + "itemAuthor的值是:" + content, Toast.LENGTH_SHORT).show();

}

      });

清單視圖(ListView和ListActivity)

以上就是一般的對于網絡圖檔綁定ListView處理方式,好一點的處理方式是定制擴充一個SimpleAdapter專用來處理圖檔綁定。

注意:此例是顯示網絡圖檔 要記得添權重限,否則報錯:java.net.SocketException: Permission denied

<uses-permission android:name="android.permission.INTERNET">

本文轉自歡醉部落格園部落格,原文連結http://www.cnblogs.com/zhangs1986/p/3612647.html如需轉載請自行聯系原作者

歡醉

繼續閱讀