Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [Android]異步加載圖片,內存緩存,文件緩存,imageview顯示圖片時增加淡入淡出動畫

[Android]異步加載圖片,內存緩存,文件緩存,imageview顯示圖片時增加淡入淡出動畫

編輯:關於Android編程

這個可以實現ImageView異步加載圖片,內存緩存,文件緩存,imageview顯示圖片時增加淡入淡出動畫。       解決了:   1. listview加載oom問題   2. listview加載時卡頓的現象   3. listview加載時item中圖片重復錯位等情況   可以配置:   1. 設置加載圖片的最大尺寸   2. 設置默認圖片的顯示   3. 設置圖片位圖模式   4. 設置內存緩存的最大值。   5. 文件緩存保存的目錄     這個框架基本的代碼是很久以前不知道哪裡弄的,零零碎碎的,現在已經優化了很多,所以現在上傳到github上共享。     講講使用方式吧:       首先使用前下載源碼或者jar包(見github:https://github.com/wangjiegulu/ImageLoaderSample)   然後進行圖片加載器(ImageLoader)的配置和初始化,推薦的方法如下:   新建MyApplication類,繼承Application,在onCreate中增加如下代碼:   復制代碼  1 /**  2  * Created with IntelliJ IDEA.  3  * Author: wangjie  email:[email protected]  4  * Date: 14-2-27  5  * Time: 上午11:25  6  */  7 public class MyApplication extends Application{  8     @Override  9     public void onCreate() { 10         super.onCreate(); 11         ImageLoader.init(getApplicationContext(), 12                 new CacheConfig() 13                     .setDefRequiredSize(600) // 設置默認的加載圖片尺寸(表示寬高任一不超過該值,默認是70px) 14                     .setDefaultResId(R.drawable.ic_launcher) // 設置顯示的默認圖片(默認是0,即空白圖片) 15                     .setBitmapConfig(Bitmap.Config.ARGB_8888) // 設置圖片位圖模式(默認是Bitmap.CacheConfig.ARGB_8888) 16                     .setMemoryCachelimit(Runtime.getRuntime().maxMemory() / 3) // 設置圖片內存緩存大小(默認是Runtime.getRuntime().maxMemory() / 4) 17 //                  .setFileCachePath(Environment.getExternalStorageDirectory().toString() + "/mycache") // 設置文件緩存保存目錄 18         ); 19  20     } 21  22  23     …… 24 } 復制代碼     然後再AndroidManifest.xml中添加:   <application             ......             android:name="MyApplication">             ...... </application> 到此,配置已經全部完成:   接下來,使用ImageLoader來加載圖片:   復制代碼  1 holder.progress.setText("0%");  2     holder.progress.setVisibility(View.VISIBLE);  3     final ViewHolder vhr = holder;  4     ImageLoader.getInstances().displayImage(list.get(position), holder.image, new ImageLoader.OnImageLoaderListener() {  5         @Override  6         public void onProgressImageLoader(ImageView imageView, int currentSize, int totalSize) {  7             vhr.progress.setText(currentSize * 100 / totalSize + "%");  8         }  9  10         @Override 11         public void onFinishedImageLoader(ImageView imageView, Bitmap bitmap) { 12             vhr.progress.setVisibility(View.GONE); 13         } 14     }); 15     或者: 16     ImageLoader.getInstances().displayImage(url, imageIv); 17     或者 18     ImageLoader.getInstances().displayImage(url, imageIv, 100);
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved