Android網路架構-Volley實踐 使用Volley打造自訂ListView

來源:互聯網
上載者:User

標籤:listview   圖片   android   volley   

這篇文章翻譯自Ravi Tamada部落格中的Android Custom ListView with Image and Text using Volley

最終效果

這個ListView呈現了一些影視資訊,每一行是一個影片的資訊,每一行中有一張電影的圖片,電影的名字、評分、類型、年份等資訊。

1.json資料

我們通過解析json然後拿到資料,這個json資料包括json數組,每個json數組中是一個json對象,json對象中包括了電影的圖片url地址、標題、年份、評分、類型等資訊

JSON Url:http://api.androidhive.info/json/movies.json

2.下載Volley庫(volley.jar)

如果你第一次使用Volley架構,我建議你去我之前的文章看一下Android網路架構-Volley(一) 工作原理分析。然後到百度上下載一個volley.jar。添加到項目的lib檔案夾裡面

3.布局分析

我選擇了RelativeLayout來實現這個布局,圖片我們使用volley提供的NetworkImageView

現在我們來建立一個Android項目

4.建立一個新的項目

1.開啟eclipse,點擊File-->New-->Android Application Project。填好基本資料後,我們把包名命名為info.androidhive.customlistviewvolley

2.將volley.jar添加到項目的lib檔案夾下

3.我們先把包建好,我們一共分為4個包: adapter, app, model 和 util  。現在我們項目結構如下:

info.androidhive.customlistviewvolley.adater
info.androidhive.customlistviewvolley.app
info.androidhive.customlistviewvolley.model
info.androidhive.customlistviewvolley.util

4.開啟res/values/colors.xml。如果沒有colors.xml,我們就自己建立一個。然後添加如下代碼

5.開啟res/values/dimens.xml。添加如下代碼

6.在寫jsva代碼之前,我們先完成UI部分,在res下建立一個drawable檔案夾,在res/drawable中建立3個xml檔案: list_row_bg.xml、list_row_bg_hover.xmllist_row_selector.xml
list_row_bg.xml -沒有被點擊時listview的樣式 list_row_bg_hover.xml -被點擊後listview的樣式 list_row_selector.xml -切換兩種樣式的slector檔案 7.開啟 activity_main.xml添加listview

8.建立每個item的布局檔案 list_row.xml UI部分我們已經完成了,接下來是java代碼部分 9.在util包下建立 LruBitmapCache.java  這個類是用來緩衝圖片的,這個類我們在之前文章中已經分析過了。參見Android網路架構-Volley(二) RequestQueue源碼分析以及建立一個RequestQueue 10.在app包下建立 AppController.java  這個類是用來建立一個單例RequestQueue的,以及初始化一些volley核心對象 11.現在我們要在 AndroidManifest.xml  中註冊這個AppController,並且添加上網路許可權 12.現在在model包下建立一個Movie實體類,解析完的json資料會儲存到這個實體類中 13.在adapter包下建立一個 CustomListAdapter.java  adapter會將item布局載入出來,並且將資料顯示到listview上面 14.開啟我們的MainActivity.java。添加如下代碼,我們使用JsonArrayRequest來發送請求,發送json請求我們在Android網路架構-Volley(四) 使用get和post方法發送json請求已經講過了。我們將解析來的MovieObject Storage Service在一個ArrayList中,調用notifyDataSetChanged()方法通知listview去更新我們的資料。



Android網路架構-Volley實踐 使用Volley打造自訂ListView

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.