1. 程式人生 > >Android批量圖片載入經典系列——afinal框架實現圖片的非同步快取載入

Android批量圖片載入經典系列——afinal框架實現圖片的非同步快取載入

public class MoreStyleNewsListViewAdapter extends BaseAdapter {
    private Activity mActivity;
    private List<NewsItem> newsList;
    private FinalBitmap imageLoader;
    public MoreStyleNewsListViewAdapter(Activity mActivity,List<NewsItem> newsList){
        this.mActivity=mActivity;
        
this.newsList=newsList; imageLoader=((SunNewsApplication)mActivity.getApplication()).getFinalBitmap(); } private final int TYPE_COUNT=2; /** * 返回資料項的顯示型別資料 * 0 1 2 */ @Override public int getItemViewType(int position) { // TODO Auto-generated method stub
return newsList!=null?newsList.get(position).getStyle():-1; } /** * 返回型別個數 */ @Override public int getViewTypeCount() { // TODO Auto-generated method stub return TYPE_COUNT; } @Override public int getCount() {
// TODO Auto-generated method stub Log.d("jereh","getCount()"); return newsList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub Log.d("jereh","getItem()"); return newsList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub Log.d("jereh","getItemId()"); return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder=null; NewsItem item=newsList.get(position); if(convertView==null){ holder=new ViewHolder(); //將layout.xml轉換為View switch(item.getStyle()){ case 0: convertView=LayoutInflater.from(mActivity).inflate(R.layout.news_item1, null); holder.ivImg1=(ImageView)convertView.findViewById(R.id.ivNewsImg); break; case 1: convertView=LayoutInflater.from(mActivity).inflate(R.layout.news_item2, null); holder.ivImg1=(ImageView)convertView.findViewById(R.id.ivImg1); holder.ivImg2=(ImageView)convertView.findViewById(R.id.ivImg2); holder.ivImg3=(ImageView)convertView.findViewById(R.id.ivImg3); break; } holder.tvTilte=(TextView)convertView.findViewById(R.id.tvTitle); convertView.setTag(holder);//記錄個標識 }else{ holder=(ViewHolder)convertView.getTag(); } //向ui元素繫結資料 holder.tvTilte.setText(item.getTitle()); imageLoader.display(holder.ivImg1, item.getImgUrl()[0]);//載入圖片,先從快取中載入,記憶體沒有再從網路載入 switch(item.getStyle()){ case 1: imageLoader.display(holder.ivImg2, item.getImgUrl()[1]);//載入圖片,先從快取中載入,記憶體沒有再從網路載入 imageLoader.display(holder.ivImg3, item.getImgUrl()[2]);//載入圖片,先從快取中載入,記憶體沒有再從網路載入 break; } Log.d("jereh","getView()"); return convertView; } private class ViewHolder{ private TextView tvTilte; private ImageView ivImg1; private ImageView ivImg2; private ImageView ivImg3; } }

相關推薦

Android批量圖片載入經典系列——afinal框架實現圖片非同步快取載入

public class MoreStyleNewsListViewAdapter extends BaseAdapter { private Activity mActivity; private List<NewsItem> newsList; private

Android批量圖片載入經典系列——使用xutil框架快取非同步載入網路圖片

一、問題描述   為提高圖片載入的效率,需要對圖片的採用快取和非同步載入策略,編碼相對比較複雜,實際上有一些優秀的框架提供瞭解決方案,比如近期在git上比較活躍的xutil框架   Xutil框架提供了四大模組: 1、  DbUtil模組:採用ORM機制簡化Sqlite操作,

Android批量圖片載入經典系列——使用LruCache、AsyncTask快取並非同步載入圖片

public class PhotoWallAdapter extends ArrayAdapter<File> implements OnScrollListener { //記錄所有正在下載或等待下載的任務。 private Set<Bit

Android批量圖片載入經典系列——採用二級快取非同步載入網路圖片

public class AsyncImageLoader{ private MemoryCache mMemoryCache;//記憶體快取 private FileCache mFileCache;//檔案快取 private ExecutorService mExecu

封裝UniversalImageLoader框架實現一行程式碼即可載入圖片,且完美支援https圖片請求

最近由於蘋果app要求ios應用網路請求必須使用https,於是公司後端把所有的http介面改為https請求,關於資料的請求   網上也有很多的文章 看文章基本可以實現讓自己的app支援https  但是由於我的圖片載入是使用的第三方UniversilImageLoade

[爬蟲入門]Python中使用scrapy框架實現圖片爬取

轉載:     https://www.jianshu.com/p/c1704b4dc04d 連結中作者寫的十分詳細,雖然示例中的網站已經無法訪問,但是零基礎效仿也能試著自己做! 真的很良心的文章,作為零基礎入門的小白可以靠看註釋和函式關係猜測出函式用法

ssm框架實現圖片上傳並顯示(myeclips)

ssm框架實現圖片上傳並顯示 第一步:匯入common-io以及common-fileupload兩個jar包,儘量新一點,老的有可能出錯 第二步:配置圖片上傳儲存的位置,針對myeclips來說,開啟檔案D:\Java\MyEclipse.metadata.me_tcat\co

Android前端RxJava2+Retrofit2;後端SpringMvc實現圖片上傳

前言 因為前端使用的rxjava+retrofit+mvp的架構進行實現,因此考慮著圖片上傳的功能也直接用rxjava+retrofit去實現,結果在使用過程中,發現始終有問題,圖片上不去;測試了幾天,嘗試更新成rxjava2+retrofit2進行測試

Android HTTP multipart/form-data 請求協議資訊實現圖片上傳

問題: Android應用中,當遇到填寫使用者資訊、發表評論等操作,不可避免會遇到“form表單操作”(類似web form操作)上傳圖片的功能。 在這種情況下,使用Android的HTTPConnection/ ApacheHTTP 通過POST 和GET的方式就實現不了

SSH框架實現圖片上傳

第一步,先寫上傳的jsp頁面upload.jsp,注意:一定要在form裡面加enctype="multipart/form-data" <!--在開頭加上這個,以防萬一--> <%@taglib prefix="s" uri="/struts-tags"%> <

thinkphp5框架實現原理二 自動載入(簡易版)

一、在base.php中 \core\Loader::register();載入自動載入 /** * @param null $autoload * 自動載入 */

Android基礎知識】使用Gallery和ImageSwitcher實現圖片輪播效果

使用Gallery和ImageSwitcher實現滑動Gallery,切換ImageSwitcher的圖片。 佈局檔案 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

SSM框架實現圖片上傳並查詢資料庫中的圖片(多圖片上傳請看下篇部落格)

第一步:首先要在我們的springMVC.xml檔案中新增上傳檔案解析器 <!-- 定義檔案上傳解析器 --> <bean id="multipartResolver" class="org.springfra

Android中Handler類的簡單使用,實現圖片切換

Handler類主要有兩個作用:在新啟動的執行緒中傳送訊息。在主執行緒中獲取、處理訊息。當新啟動的執行緒傳送訊息時,Handler類中處理訊息的方法會被自動回撥。Handler類包含如下方法用於傳送、處理訊息: 下面通過一個簡單例項來演示Handler的使用,實現點選切

用SpringMVC框架實現圖片上傳與下載

1、新建一個Maven webapp專案,引入需要用的夾包,pom.xml檔案的依賴包如下: <dependencies> <!-- 用於生成圖片的縮圖 --> <dependency> <g

android-新聞客戶端-離線下載的簡單實現(圖片部分)

轉載請註明:來自Xuye_(http://blog.csdn.net/x1876631/article/details/44202471)的專欄 1、寫在前面: 做android應用開發也有段時間了,

基於Vue + Node.js + MongoDB的圖片上傳組件,實現圖片的預覽和刪除

信息 clas 發送數據 演示 新增 one input標簽 return tof 公司要寫一些為自身業務量身定制的的組件,要基於Vue,趁著這個機會,自己在業余時間也寫了個組件,選擇寫圖片上傳是因為自己之前一直對這個功能比較迷糊,所以這次好好了解了一下。演示在網址打開後的

網路請求載入控制元件的簡單實現,能顯示載入中、沒網路、載入失敗點選重新載入等狀態

網路請求經常需要用到載入的一個動畫,有這麼幾種狀態: 1、正在載入中,顯示一個動畫。 2、載入成功,則動畫消失。 3、沒網路,則點選能直接開啟設定進行網路設定。 4、載入失敗,則點選能重新載入。 載入控制元件效果如下: 因為使用頻率很高,所以寫了一個控制元件,把這麼些基本

【選擇圖片Jar】全屏DialogFragment實現圖片詳情預覽(十)

1.前言 上一篇文章我們在最後丟擲了一個問題。到底我們要如何實現圖片的詳情頁的預覽。 如圖: 相信大家看了標題已經知道了,我們是用DialogFragment實現我們這個功能的! 嘿嘿,可能這個時候會有點驚訝,原來DialogFragment還有這樣的

Android 圖片三級快取載入框架原理解析與程式碼實現

本文主要介紹三級快取的原理解析與實現方式。以前一直覺得三級快取圖片載入是一個很難理解的東西,但是自己看了一下午再試著寫了一遍之後感覺還是隻要沉下心思考還時很容易熟悉掌握的。 所謂三級快取:首先是記憶體-檔案(外存)-網路三級快取機制。 首先: 框架需要一個接入方法NGIm