为了账号安全,请及时绑定邮箱和手机立即绑定

Picasso Glide 和Fresco图片加载遇到的问题

标签:
Android

Picasso 加载图片的内存优化问题

http://blog.csdn.net/ashqal/article/details/48005833

在加载较多的图片时建议指定图片大小并使用裁剪后的图片,比如图片选择器没有指定大小,gridview滑动会很沉重,并且容易造成OOM异常

android默认的默认情况下,Android使用ARGB_8888

Android中有四种,分别是:
ALPHA_8:每个像素占用1byte内存
ARGB_4444:每个像素占用2byte内存
ARGB_8888:每个像素占用4byte内存
RGB_565:每个像素占用2byte内存12345

RGB_565呈现结果与ARGB_8888接近,内存对比如下图

Picasso.().load(path).placeholder(R.mipmap.).
        config(Bitmap.Config.).resize(width, height).centerCrop().
        error(R.drawable.).into(view);

所以一般情况下用Picasso的情况下指定图片的格式,尽量指定图片的大小使用裁剪后的图片

Picasso加载图片的回掉监听是

Picasso.with(mContext).load(mBigImageUrl).config(Bitmap.Config.RGB_565).
     memoryPolicy(NO_CACHE, NO_STORE).placeholder(R.color.black).
     error(R.mipmap.prepare_dark).into(mImageView, new Callback() {
  @Override
  public void onSuccess() {
     if(progressBar.isShown()) {
        progressBar.setVisibility(View.GONE);
     }
  }
  @Override
  public void onError() {
     if(progressBar.isShown()) {
        progressBar.setVisibility(View.GONE);
     }
  }
});

callback接口有两个方法onSuccess()和onError()方法,如果加载图片未显示时需要登台提示,可以在加载成功或

失败时将ProgressBar消失 

对于Picasso需要在加载图片时进行处理,否则会造成OOM

                                                                                                                                                     

Glide 加载图片并不需要向Picasso一样需要进行图片处理,

处理过程中遇到的问题

http://www.cnblogs.com/alone-01/p/5768312.html

Glide.().load(path).override(,).centerCrop().placeholder(R.mipmap.).
        error(R.drawable.).into(holder.);

Glide 加载图片的监听是

Glide.().load()
      .placeholder(R.color.)
      .error(R.mipmap.)
      .skipMemoryCache()
      .crossFade()
      .dontAnimate().into(SimpleTarget<GlideDrawable>() {
   onResourceReady(GlideDrawable resource, GlideAnimation<? GlideDrawable> glideAnimation) {
      .setImageDrawable(resource);
      (.isShown()) {
         .setVisibility(View.);
      }

   }

   onLoadFailed(Exception e, Drawable errorDrawable) {
      .onLoadFailed(e, errorDrawable);
      (.isShown()) {
         .setVisibility(View.);

      }
   }
});

Glide加载图片,查看大图在刷新图片会遇到图片闪烁的问题,  是因为加载图片先加载占位图,在加载图片 ,要么不要展位图  或者上面的设置图片的方式

最简单的方法是将显示图片的控件ImageView的高度设置为wrap_content, 而我把width也设置为wrap_conten  同时dontAnimate(),问题便解决了

Glide和Picasso都没有加载图片时的加载提示

                                                                                                                                                                                                      

Fresco非常强大   GenericDraweeView 可以直接在xml中设置加载提示

fresco:progressBarImage="@mipmap/aviary_ic_rotate_right_nomal"
fresco:progressBarImageScaleType="centerInside"


...............

原文链接:http://www.apkbus.com/blog-852208-63189.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消