gpt4 book ai didi

android - picasso - 将图像加载到适配器中的图像按钮

转载 作者:行者123 更新时间:2023-11-29 15:58:05 28 4
gpt4 key购买 nike

我想将图像加载到适配器中的 ImageButton 中,这有时不起作用...我有一个具有 4 个条目的适配器,有时按钮图像只加载了 2 次而不是 4 次。始终仅在第一次创建适配器时...屏幕旋转左右后,一切正常...但在第一个显示器上,它无法正常工作...

4 行的适配器仅在第一次创建时调用 2 次准备和两次加载...

以下是我的适配器的getView:

@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
if (convertView == null)
convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_link, parent, false);

convertView.setTag(R.id.tag_pos, position);

ImageView iconRow = ViewHolder.get(convertView, R.id.icon);
final ImageButton btOpen = ViewHolder.get(convertView, R.id.btOpen);

// this NEVER fails
PicassoTools.getPicasso().load(item.getIconResId()).into(iconRow);
// this sometimes (at the first start) does not work reliable
PicassoTools.getPicasso().load(isAutoLinked ? R.drawable.linked : R.drawable.unlinked).into(new Target()
{
@Override
public void onPrepareLoad(Drawable d)
{
L.d(this, "BUTTON PREPARE");
}

@Override
public void onBitmapLoaded(Bitmap b, LoadedFrom loadedFrom)
{
L.d(this, "BUTTON LOADED");
btLink.setImageBitmap(b);
}

@Override
public void onBitmapFailed(Drawable d)
{
L.d(this, "BUTTON FAILED");
btLink.setImageBitmap(null);
}
});

return convertView;
}

我的 PicassoTools 函数(我在这个类中有一些额外的函数):

public static Picasso getPicasso()
{
if (picasso == null)
picasso = new Picasso.Builder(MainApp.getAppContext()).memoryCache(getCache()).build();
return picasso;
}

最佳答案

使用目标

private Target loadtarget;

在getView()中写这段代码

if (loadtarget == null)
loadtarget = new Target() {
@Override
public void onBitmapFailed(Drawable arg0) {
}

@Override
public void onBitmapLoaded(Bitmap bitmap, LoadedFrom from) {
handleLoadedBitmap(bitmap);
}

@Override
public void onPrepareLoad(Drawable arg0) {

}
};

try {
Picasso.with(this).load(url).into(loadtarget);
} catch (IllegalArgumentException iae) {
iae.printStackTrace();
}

public void handleLoadedBitmap(Bitmap b) {
BitmapDrawable bdrawable = new BitmapDrawable(b);
imageButton.setBackgroundDrawable(bdrawable);
}

希望这对你有帮助:)

关于android - picasso - 将图像加载到适配器中的图像按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26710519/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com