文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android开发中ImageLoder进行图片加载和缓存

2022-06-06 08:41

关注

图片处理类:


package com.longfei.admin.imageloder_text;
import android.app.Application;
import android.graphics.Bitmap;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import java.io.File;

public class ImageLoading extends Application {
  @Override
  public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
        this)
        .memoryCacheExtraOptions(480, 800)
            // max width, max height,即保存的每个缓存文件的最大长宽
        .discCacheExtraOptions(480, 800, null)
            // Can slow ImageLoader, use it carefully (Better don't use
            // it)/设置缓存的详细信息,最好不要设置这个
        .threadPoolSize(3)
            // 线程池内加载的数量
        .threadPriority(Thread.NORM_PRIORITY - 2)
        .denyCacheImageMultipleSizesInMemory()
        .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))
            // You can pass your own memory cache
            // implementation/你可以通过自己的内存缓存实现
        .memoryCacheSize(2 * 1024 * 1024)
        .discCacheSize(50 * 1024 * 1024)
        .discCacheFileNameGenerator(new Md5FileNameGenerator())
            // 将保存的时候的URI名称用MD5 加密
        .tasksProcessingOrder(QueueProcessingType.LIFO)
        .discCacheFileCount(100)
            // 缓存的文件数量
        .discCache(
            new UnlimitedDiscCache(new File(Environment
                .getExternalStorageDirectory()
                + "/myApp/imgCache")))
            // 自定义缓存路径
        .defaultDisplayImageOptions(getDisplayOptions())
        .imageDownloader(
            new BaseImageDownloader(this, 5 * 1000, 30 * 1000))
        .writeDebugLogs() // Remove for release app
        .build();// 开始构建
    ImageLoader.getInstance().init(config);
  }
  private DisplayImageOptions getDisplayOptions() {
    DisplayImageOptions options;
    options = new DisplayImageOptions.Builder()
        .showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
        .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
        .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
        .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
        .cacheOnDisc(true)// 设置下载的图片是否缓存在SD卡中
        .considerExifParams(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转)
        .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示
        .bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//
            // .delayBeforeLoading(int delayInMillis)//int
            // delayInMillis为你设置的下载前的延迟时间
            // 设置图片加入缓存前,对bitmap进行设置
            // .preProcessor(BitmapProcessor preProcessor)
        .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
        .displayer(new RoundedBitmapDisplayer(20))// 是否设置为圆角,弧度为多少
        .displayer(new FadeInBitmapDisplayer(100))// 是否图片加载好后渐入的动画时间
        .build();// 构建完成
    return options;
  }
}
package com.longfei.admin.imageloder_text;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

public class MainActivity extends Activity {
  private ImageLoader loader;
  private ImageView iv_img;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    loader=ImageLoader.getInstance();//实例化ImageLoder
    iv_img=(ImageView)findViewById(R.id.iv_img);
    String url="file:///"+"加载本地图片";
    //加载网络图片,第一个参数为路径
//    loader.displayImage("/file/upload/202206/06/bnqdn5wc55k.jpg?t=1419303093000",iv_img);
    loader.displayImage("/file/upload/202206/06/bnqdn5wc55k.jpg?t=1419303093000", iv_img, new ImageLoadingListener() {
      @Override
      public void onLoadingStarted(String s, View view) {
        Log.i("info","加载开始");
      }
      @Override
      public void onLoadingFailed(String s, View view, FailReason failReason) {
        Log.i("info","加载失败");
      }
      @Override
      public void onLoadingComplete(String s, View view, Bitmap bitmap) {
        Log.i("info","加载完毕");
      }
      @Override
      public void onLoadingCancelled(String s, View view) {
        Log.i("info","加载取消");
      }
    });
  }
}
您可能感兴趣的文章:Android实现Listview异步加载网络图片并动态更新的方法Android 自定义圆形头像CircleImageView支持加载网络图片的实现代码在Android的应用中实现网络图片异步加载的方法Android布局自定义Shap圆形ImageView可以单独设置背景与图片Android编程简单实现ImageView点击时背景图修改的方法android imageview图片居中技巧应用Android实现ImageView图片双击放大及缩小Android使用控件ImageView加载图片的方法Android UI之ImageView实现图片旋转和缩放android Imageview 图片覆盖具体实现Android手势滑动实现ImageView缩放图片大小Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯