【问题标题】:what is callback method of Picasso download bitmap?Picasso下载位图的回调方法是什么?
【发布时间】:2016-06-22 22:53:24
【问题描述】:

我使用这个库 (https://github.com/androidquery/androidquery) 进行图像下载和显示。有一个回调方法。在此方法中,我正在检查位图是否大于屏幕尺寸。如果位图大于屏幕尺寸,那么我将位图分成 5 个位图部分并显示在 5 个图像视图中,因此分辨率很好。

  final AQuery[] aq = {new AQuery(hh.imageview), new AQuery(hh.imageview3), new AQuery(hh.thumbnail3),
                        new AQuery(hh.thumbnail4), new AQuery(hh.thumbnail5), new AQuery(hh.thumbnail6)};
                final Bitmap[] bitmap = new Bitmap[6];
                aq[0].id(hh.imageview).image(url, false, true, 0, 0, new BitmapAjaxCallback() {

                    @Override
                    public void callback(String url, ImageView iv, Bitmap bm, AjaxStatus status) {

                        if(bm != null) {
                            if(bm.getHeight()>=maxTextureSize){
                                int h = bm.getHeight();
                                int w = bm.getWidth();

                               /* bitmap[0] = Bitmap.createBitmap(bm, 0 , 0, w, h/6);
                                iv.setImageBitmap(bitmap[0]);
                                bitmap[1] = Bitmap.createBitmap(bm, 0 , bitmap[0].getHeight(),
                                        w, h/6);
                                aq[1].id(hh.imageview3).image(bitmap[1]);
                                bitmap[2] = Bitmap.createBitmap(bm, 0 , bitmap[0].getHeight() + bitmap[1].getHeight(),
                                        w, h/6);
                                aq[2].id(hh.thumbnail3).image(bitmap[2]);
                                bitmap[3] = Bitmap.createBitmap(bm, 0, bitmap[0].getHeight() + bitmap[1].getHeight() + bitmap[2].getHeight(),
                                        w, h/6);
                                aq[3].id(hh.thumbnail4).image(bitmap[3]);
                                bitmap[4] = Bitmap.createBitmap(bm, 0, bitmap[0].getHeight() + bitmap[1].getHeight() + bitmap[2].getHeight()+bitmap[3].getHeight(),
                                        w, h/6);
                                aq[4].id(hh.thumbnail5).image(bitmap[4]);
                                bitmap[5] = Bitmap.createBitmap(bm, 0, bitmap[0].getHeight() + bitmap[1].getHeight() + bitmap[2].getHeight()+bitmap[3].getHeight()+bitmap[4].getHeight()
                                        , w, h/6);
                                aq[5].id(hh.thumbnail6).image(bitmap[5]);*/
                           /* }
                            else if(bm.getWidth()>=maxTextureSize){
                                bm =Bitmap.createScaledBitmap(bm, maxTextureSize, bm.getHeight(), true);
                                iv.setImageBitmap(bm);
                            } else {
                                iv.setImageBitmap(bm);
                                hh.imageview3.setImageDrawable(null);
                                hh.thumbnail3.setImageDrawable(null);
                                hh.thumbnail4.setImageDrawable(null);
                                hh.thumbnail5.setImageDrawable(null);
                                hh.thumbnail6.setImageDrawable(null);
                            }
                        }
                    }
                });

                if(bitmap[0] != null) {
                    bitmap[0].recycle();
                    bitmap[0] = null;
                }
                if(bitmap[1] != null) {
                    bitmap[1].recycle();
                    bitmap[1] = null;
                }
                if(bitmap[2] != null) {
                    bitmap[2].recycle();
                    bitmap[2] = null;
                }
                if(bitmap[3] != null) {
                    bitmap[3].recycle();
                    bitmap[3] = null;
                }
                if(bitmap[4] != null) {
                    bitmap[4].recycle();
                    bitmap[4] = null;
                }
                if(bitmap[5] != null) {
                    bitmap[5].recycle();
                    bitmap[5] = null;
                }

现在我已经移动了 Picasso (http://square.github.io/picasso/) 库。我也在这个库中寻找相同的逻辑。但无法找到我该怎么做?请帮帮我。

【问题讨论】:

    标签: android picasso


    【解决方案1】:
    Picasso.with(MainActivity.this)
                .load(imageUrl)
                .into(imageView, new com.squareup.picasso.Callback() {
                            @Override
                            public void onSuccess() {
                                //do smth when picture is loaded successfully
    
                            }
    
                            @Override
                            public void onError() {
                                //do smth when there is picture loading error
                            }
                        });
    

    【讨论】:

      【解决方案2】:

      根据https://square.github.io/picasso/2.x/picasso/com/squareup/picasso/RequestCreator.html#into-android.widget.ImageView-com.squareup.picasso.Callback-

      .into 方法提供了第二个参数,它是成功和失败的回调。

      public void into(android.widget.ImageView target,
                   Callback callback)
      

      您也可以使用.transform(new ImageTransformation()) 方法更改大小

      【讨论】:

        猜你喜欢
        • 2014-07-27
        • 1970-01-01
        • 2013-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多