gpt4 book ai didi

android - 如何在更新gridview时避免闪烁?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:37 25 4
gpt4 key购买 nike

我有一个 GridView 。我正在显示 10 张图像数组中的图像。 1 分钟后,我又添加了 5 张图片。要更新 gridview,我使用以下代码。

aImgAdapterL.notifyDataSetChanged();  

aImgAdapterL 是我的 ImgaeAdapter。正在显示新图像。
我的问题是在更新 gridview 时,图像更新期间出现闪烁或闪烁。是否可以隐藏闪烁?

最佳答案

我遇到了同样的问题,并且能够像这样解决它:

事实上,这是由于我的 ListAdapter 没有正确管理整个列表刷新的情况。如果是这样,您要做的是保持屏幕上已显示的项目原样。

为此,在 Adapter 的 getView 方法中,当您获得回收项目时,您必须检查它是否已经不是您要显示的项目。如果是这样,直接返回就好了。

@Override
public View getView(int position, View convertView, ViewGroup container) {
ImageView imageView;
String src = this.getItem(position).getSrcThumbnail();
if (convertView == null) {
imageView = new ImageView(getContext());
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120, getResources().getDisplayMetrics());

imageView.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.MATCH_PARENT, height));

} else {
imageView = (ImageView) convertView;

// When you get a recycled item, check if it's not already the one you want to display.
String newSrc = (String) imageView.getTag();

if(newSrc.equals(src)){
// If so, return it directly.
return imageView;
}
}

loadBitmap(this.getItem(position).getSrcThumbnail(), imageView);

// Here you set the unique tag that allow to identify this item.
imageView.setTag(src);

return imageView;
}

关于android - 如何在更新gridview时避免闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582165/

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