【问题标题】:How to load a Bitmap with Picasso without using an ImageView?如何在不使用 ImageView 的情况下使用 Picasso 加载位图?
【发布时间】:2014-06-19 08:47:31
【问题描述】:

使用ImageView,我可以使用以下代码通过回调下载图像

Picasso.with(activity).load(url).into(imageView, new Callback()
{
    @Override
    public void onSuccess() 
    {
        // do something
    }

    @Override
    public void onError() { }
);

或者只是从这个Picasso.with(activity).load(url).get(); 获取位图。无论如何要为下载图像添加回调?如果可能,请提供示例代码,干杯!

【问题讨论】:

    标签: android android-imageview picasso android-bitmap


    【解决方案1】:

    您可以创建一个 Target,然后在 Targets 回调方法 onBitmapLoaded(...) 中修改 Bitmap。方法如下:

    // make sure to set Target as strong reference
    private Target loadtarget;
    
    public void loadBitmap(String url) {
    
        if (loadtarget == null) loadtarget = new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                // do something with the Bitmap
                handleLoadedBitmap(bitmap);
            }
    
            @Override
            public void onBitmapFailed() {
    
            }
        };
    
        Picasso.with(this).load(url).into(loadtarget);
    }
    
    public void handleLoadedBitmap(Bitmap b) {
        // do something here
    }
    

    【讨论】:

    • Complier 抱怨将final 添加到myLoadedBitmap,但我显然无法分配它,是否可以修复?
    • 当我尝试分享到 Instagram 时,可以从本地 drawable 分享,但不能从 URL 分享。搞清楚..
    • 我注意到onBitmapLoaded 不会在onPrepareLoad i.imgur.com/kKdba3d.png 之后调用
    • 确保将 Target 设置为强参考,就像魅力一样!谢谢
    • String url 的值是多少?
    猜你喜欢
    • 2020-11-20
    • 2019-06-27
    • 2016-09-26
    • 2017-01-21
    • 1970-01-01
    • 2020-11-28
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多