android – 当它的子项请求无效时,Gallery上的奇怪动画
作者:互联网
这是我的Gallery的适配器,我在其上显示ImageViews(页面的拇指)
我想加载图像ASync(有时这可能来自网络),所以我做了那个代码:
public View getView(int position, View convertView, ViewGroup parent) {
final ImageView image = convertView != null ? convertView : new ImageView(getContext());
final PageInfo page = getItem(position);
image.setBackgroundColor(Color.WHITE);
image.setLayoutParams(new Gallery.LayoutParams(96, 170));
new AsyncTask<Void, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(Void... arg0) {
try {
File thumbnail = page.thumbnail();//Thumbnail download the image if not available
return BitmapFactory.decodeStream(new FileInputStream(thumbnail));
} catch (ApplicationException e) {
return null;
} catch (NetworkException e) {
return null;
}
}
protected void onPostExecute(Bitmap result) {
if (result == null)
return;
image.setImageBitmap(result);
};
}.executeOnExecutor(executor);
return image;
}
这是有效的,但如果我拖动画廊的视图(当切换到真正的Bitmap时)做一个“跳”到厨房内的另一个位置,使它变得奇怪.
我怎么能避免这种情况?或者我可以在不请求ViewGroup布局的情况下更改ImageView的图像吗?
编辑:谷歌开发团体的类似问题
http://code.google.com/p/android/issues/detail?id=15526
解决方法:
Gallery小部件有一个已知错误,导致它始终返回null convertView.这意味着每次调用getView时,您都会创建一个新的ImageView,这可能会导致您看到的问题.
有一个第三方创建了修复回收错误的图库,在线搜索EcoGallery,您可以找到如何实现它.在滚动图库时,它会显着提高图形性能.
标签:android,android-imageview,android-image,android-view,android-gallery 来源: https://codeday.me/bug/20190716/1481732.html