android - onBitmapLoaded 从未调用过

标签 android bitmap picasso

onBitmapLoaded 有问题。该方法未在应调用时调用(它是我第二次进入 View 时调用的)。不过,我保留了对目标的引用,因为我将它添加到 arraylist

我不明白为什么它不起作用。 有人有想法吗?

public void loadBitmap() {

    if(loadtarget == null) {
        loadtarget = new Target(){

            @Override
            public void onPrepareLoad(Drawable arg0) {
                Log.d("Bitmap","On prepare load");
                targetList.remove(this);
                return;
            }

            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                Log.d("Bitmap","OKAY for :" + filename);
                targetList.remove(this);
                handleLoadedBitmap(bitmap);
            }

            @Override
            public void onBitmapFailed(Drawable errorDrawable) {
                Log.d("Bitmap","Error for :" + filename);
            }
        };
    }
    targetList.add(loadtarget);
    Picasso.with(context).load(imageUrl).into(loadtarget);
}

最佳答案

如果 targetList 和 loadtarget 都是局部变量,那么它们将在方法完成后立即被标记为 GC 收集。 确保 targetList 是一个类变量,以便它比方法长。

关于android - onBitmapLoaded 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607200/

相关文章:

java - 在另一个 Activity 中显示选定的图像

android - 使用 Volley 或 Picasso 从 URL 加载并显示 WebM 和 Gif 到 ImageView

android - 花时间在android中加载背景图片

android - recyclerview 中错误的项目更改

android - 在 Android 4.4 中单击 Web View 中的表单时禁用缩放

java - Android:将Closeable接口(interface)与Socket一起使用时出现异常

android - 高效地为 map 标记创建位图

android - Android 中的 USB 调试

android - Android 中的位图 channel 顺序不同

android - picasso 图像不显示