gpt4 book ai didi

android - ListView 中一行的背景图像

转载 作者:太空狗 更新时间:2023-10-29 15:14:08 24 4
gpt4 key购买 nike

我有一个显示来自互联网的图像和文本的 ListView 。我的 Intent 是这个图像除了显示 ImageView 外,还是 ListView 行的背景图像。这可行,但有问题。

在我为 ImageView 准备的 ListView 适配器中:

imageLoader.DisplayImage (song.get (principal.KEY_PICTURE) my_imageView);

并在 LinearLayout 中使用图像:

imageLoader.DisplayImageLinear (song.get (principal.KEY_PICTURE) my_linearLayout);

这会调用以下方法:

public void DisplayImageLinear (String url, LinearLayout linearbck)
{
Bitmap bitmap = memoryCache.get (url);
Drawable d = new BitmapDrawable (bitmap);
if (bitmap! = null) {
linearbck (d);
}
else
{ linearbck.setBackgroundResource (R.drawable.list_selector); }
}

我的问题是listview的行的背景图片只有当listview滑出屏幕并重新进入时才可见...

我希望我解释正确..这里有一张解释问题的图片

enter image description here

我尝试使用linearbck.invalidate(),但没有成功

我真诚地感谢任何帮助

谢谢

最好的问候

编辑:

添加适配器。谢谢:)

public class lstAdapter extends BaseAdapter {

private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;

public MinAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}


public int getCount() {
return data.size();
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;


if(convertView==null)
vi = inflater.inflate(R.layout.list_row, null);


ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image);
ImageView photo_user =(ImageView)vi.findViewById(R.id.photoUser);
LinearLayout background =(LinearLayout)vi.findViewById(R.id.background);

HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);


imageLoader.DisplayImage(song.get(principal.KEY_AVATAR_AUTOR_ENTRADA), thumb_image);
imageLoader.DisplayImage(song.get(principal.KEY_PICTURE), photo_user);
imageLoader.DisplayImageLinear(song.get(principal.KEY_PICTURE), background);


return vi;
}

@Override
public boolean isEnabled(int position)
{
if(principal.asynTaskEnUso.equals("yes")){
return false;
} else {
return true;
}

}

}

最佳答案

当我们看到 source of ImageLoader ,当缓存中没有下载照片时,它会将照片排队。

=> 您没有对照片进行排队。

下载照片时为set to the ImageView , 来自回调。

=>您可能(或很可能)没有将其设置为 LinearLayout 作为背景。

现在你的问题:

My problem is that the background images of the rows of the listview are only visible when the listview slip and rows out of the screen and re-enter ...

第一次,缓存是空的,没有找到需要的照片,所以它去下载,因为你还没有实现并排队等待 LinearLayout 设置为背景在回调中。它没有显示,但是当您滚动 ListView 并返回时,它会第一次找到图像(因为它已被下载和缓存)并将其设置为背景。

解决方法:

维护并设置一些标志以跟踪您的 LinearLayout 的引用,并在下载完成后将其设置为背景。

关于android - ListView 中一行的背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14040269/

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