标签:android android-imageview android-image android-view 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。