zoukankan      html  css  js  c++  java
  • ImageLoader加载图片

    ImageLoader加载图片

     

    先导universal-image-loader-1.9.3包

    在application配置 android:name=".MyApplication"

    intent权限

    复制代码
     1 package com.ch.day13_imageloaderdemo;
     2 
     3 import java.io.File;
     4 
     5 import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
     6 import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
     7 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
     8 import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
     9 import com.nostra13.universalimageloader.core.DisplayImageOptions;
    10 import com.nostra13.universalimageloader.core.ImageLoader;
    11 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
    12 import com.nostra13.universalimageloader.core.assist.ImageScaleType;
    13 import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
    14 import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
    15 import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
    16 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
    17 import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
    18 
    19 import android.app.Application;
    20 import android.graphics.Bitmap;
    21 import android.os.Environment;
    22 import android.util.Log;
    23 
    24 public class MyApplication extends Application{
    25     
    26     @Override
    27     public void onCreate() {
    28         // TODO Auto-generated method stub
    29         super.onCreate();
    30         Log.i("TAG", "自定义的application类调用了.....");
    31         //创建ImageLoader的默认配置
    32 //        ImageLoaderConfiguration confing = ImageLoaderConfiguration.createDefault(this);
    33         //得到sdcard路径
    34         String sdpath = Environment.getExternalStorageDirectory().getPath();
    35         //自定义ImageLoaderConfiguration
    36         ImageLoaderConfiguration confing = new ImageLoaderConfiguration.Builder(this)
    37         .memoryCacheExtraOptions(480, 800)// default = device screen dimensions 内存缓存文件的最大长宽
    38         .diskCacheExtraOptions(480, 800, null)// 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个 
    39 //        .taskExecutor(null)
    40 //        .taskExecutorForCachedImages(null)
    41         .threadPoolSize(3)// default  线程池内加载的数量
    42         .threadPriority(Thread.NORM_PRIORITY-2) // default 设置当前线程的优先级
    43         .tasksProcessingOrder(QueueProcessingType.FIFO)//任务的处理顺序
    44         .denyCacheImageMultipleSizesInMemory()
    45         .memoryCache(new LruMemoryCache(2 * 1024 * 1024))////设置自己的内存缓存大小 2m
    46         .memoryCacheSize(2 * 1024 * 1024)
    47 //        .memoryCacheSizePercentage(13)
    48         .diskCache(new UnlimitedDiscCache(new File(sdpath+"/app1407a/imgcache")))//设置缓存的图片在sdcard中的存放位置
    49         .diskCacheSize(50 * 1024 * 1024)
    50         .diskCacheFileCount(100)
    51         .diskCacheFileNameGenerator(new Md5FileNameGenerator())//md5加密的方式,或new HashCodeFileNameGenerator()
    52         .imageDownloader(new BaseImageDownloader(this))
    53 //        .imageDecoder(new BaseImageDecoder(true))
    54         .defaultDisplayImageOptions(null)//不适用默认的图片加载配置,使用自定义的
    55         .writeDebugLogs()
    56         .build();
    57         //初始化
    58         ImageLoader.getInstance().init(confing);
    59     }
    60     
    61     public static DisplayImageOptions getOptions(){
    62         //自定义加载图片的配置信息
    63         DisplayImageOptions option = new DisplayImageOptions.Builder()
    64         .showImageOnLoading(R.drawable.ic_launcher)// 设置图片下载期间显示的图片
    65         .showImageForEmptyUri(R.drawable.emptyurl) // 设置图片Uri为空或是错误的时候显示的图片
    66         .showImageOnFail(R.drawable.emptyurl)// 设置图片加载或解码过程中发生错误显示的图片
    67         .resetViewBeforeLoading(false)// default 设置图片在加载前是否重置、复位
    68 //        .delayBeforeLoading(1000)// 下载前的延迟时间
    69         .cacheInMemory(true)// default  设置下载的图片是否缓存在内存中
    70         .cacheOnDisk(true)// default  设置下载的图片是否缓存在SD卡中
    71         .considerExifParams(false)
    72         .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)//设置图片的显示比例
    73         .bitmapConfig(Bitmap.Config.RGB_565)// default 设置图片的解码类型
    74 //        .displayer(new RoundedBitmapDisplayer(75))//设置图片的圆角半径
    75         .displayer(new FadeInBitmapDisplayer(8000))//设置图片显示的透明度过程时间
    76         .build();
    77         
    78         return option;
    79     }
    80 
    81 }
    复制代码
    复制代码
     1 package com.ch.day13_imageloaderdemo;
     2 
     3 import com.nostra13.universalimageloader.core.ImageLoader;
     4 import com.nostra13.universalimageloader.core.assist.FailReason;
     5 import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
     6 import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
     7 
     8 import android.os.Bundle;
     9 import android.app.Activity;
    10 import android.app.ProgressDialog;
    11 import android.graphics.Bitmap;
    12 import android.util.Log;
    13 import android.view.Menu;
    14 import android.view.View;
    15 import android.widget.ImageView;
    16 
    17 public class MainActivity extends Activity {
    18     private ImageView img;
    19     String url = "http://photocdn.sohu.com/kis/fengmian/1193/1193693/1193693_ver_big.jpg";
    20     String url1 = "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg";
    21     @Override
    22     protected void onCreate(Bundle savedInstanceState) {
    23         super.onCreate(savedInstanceState);
    24         setContentView(R.layout.activity_main);
    25         
    26         init();
    27     }
    28     
    29     public void init(){
    30         img = (ImageView) findViewById(R.id.img);
    31         //通过ImageLoader加载网络图片,配置给img
    32 //        ImageLoader.getInstance().displayImage(url, img);
    33 //        ImageLoader.getInstance().displayImage(url, img, MyApplication.getOptions());
    34 //        ImageLoader.getInstance().displayImage(url, img, MyApplication.getOptions(), new ImageLoadingListener() {
    35 //            @Override
    36 //            public void onLoadingStarted(String arg0, View arg1) {
    37 //            }
    38 //            @Override
    39 //            public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
    40 //            }
    41 //            @Override
    42 //            public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
    43 //            }
    44 //            @Override
    45 //            public void onLoadingCancelled(String arg0, View arg1) {
    46 //            }
    47 //        });
    48         final ProgressDialog pro = new ProgressDialog(this);
    49         pro.setMessage("努力加载中。。。");
    50         pro.setIcon(R.drawable.ic_launcher);
    51         pro.show();
    52         ImageLoader.getInstance().displayImage(url1, img, MyApplication.getOptions(), null, new ImageLoadingProgressListener() {
    53             
    54             @Override
    55             public void onProgressUpdate(String arg0, View arg1, int arg2, int arg3) {
    56                 // TODO Auto-generated method stub
    57                 Log.i("TAG", arg0+",,"+arg2+","+arg3);
    58                 float rs = ((float)arg2)/arg3;
    59                 pro.setMessage("当前加载到:"+rs*100+"%");
    60                 if(arg2 == arg3){
    61                     pro.cancel();
    62                 }
    63             }
    64         });
    65     }
    66 
    67     @Override
    68     public boolean onCreateOptionsMenu(Menu menu) {
    69         // Inflate the menu; this adds items to the action bar if it is present.
    70         getMenuInflater().inflate(R.menu.activity_main, menu);
    71         return true;
    72     }
    73 
    74 }
    复制代码
  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/hnpy/p/5455336.html
Copyright © 2011-2022 走看看