Board logo

标题: Picasso使用简介及分析(10) [打印本页]

作者: look_w    时间: 2019-2-18 19:58     标题: Picasso使用简介及分析(10)

以ImageViewAction为例看下complete中的实现

    @Override   
    public void complete(Bitmap result, Picasso.LoadedFrom from) {   
      if (result == null) {   
        throw new AssertionError(String.format("Attempted to complete action with no result!\n%s", this));  
      }  
      ImageView target = this.target.get();  
      if (target == null) {   
        return;  
      }  
      Context context = picasso.context;  
      //是否展示来源的标签,默认不展示。
      boolean indicatorsEnabled = picasso.indicatorsEnabled;
      PicassoDrawable.setBitmap(target, context, result, from, noFade, indicatorsEnabled);  
      if (callback != null) {   
        callback.onSuccess();  
      }
    }
    //PicassoDrawable中setBitmap方法的实现
    static void setBitmap(ImageView target, Context context, Bitmap bitmap,   
            Picasso.LoadedFrom loadedFrom, boolean noFade, boolean debugging) {
     Drawable placeholder = target.getDrawable();  
     if (placeholder instanceof AnimationDrawable) {   
        ((AnimationDrawable) placeholder).stop();  
      }  
     //最终扔到ImageView上现实的的是PicassoDrawable
     PicassoDrawable drawable = new PicassoDrawable(context, bitmap, placeholder, loadedFrom, noFade, debugging);  
     target.setImageDrawable(drawable);}

到这里,Picasso加载图片的逻辑就分析完了。下面我们看下Square还留给我们什么其他可以学习的东西。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0