Android PagerAdapter::将当前项放入位图
我正在为我的应用程序使用UniversalImageLoader。MyAndroid PagerAdapter::将当前项放入位图,android,universal-image-loader,android-pageradapter,Android,Universal Image Loader,Android Pageradapter,我正在为我的应用程序使用UniversalImageLoader。MyImageAdapter扩展PagerAdapter。我需要当前图像作为位图。通过回调方法public void onload complete(Bitmap loadedImage)我得到了位图。但这不是当前显示的位图图像。它是下一个图像或上一个图像(取决于交换)。以下是完整的代码: private class ImagePagerAdapter extends PagerAdapter { private
ImageAdapte
r扩展PagerAdapter
。我需要当前图像作为位图。通过回调方法public void onload complete(Bitmap loadedImage)
我得到了位图。但这不是当前显示的位图图像。它是下一个图像或上一个图像(取决于交换)。以下是完整的代码:
private class ImagePagerAdapter extends PagerAdapter {
private String[] images;
private LayoutInflater inflater;
ImagePagerAdapter(String[] images) {
this.images = images;
inflater = getLayoutInflater();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
@Override
public void finishUpdate(View container) {
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object instantiateItem(View view, int position) {
if (view != null) {
final View imageLayout = inflater.inflate(
R.layout.item_pager_image, null);
final ImageView imageView = (ImageView) imageLayout
.findViewById(R.id.image_item_pager);
imageLoader.displayImage(images[position], imageView, options,
new ImageLoadingListener() {
@Override
public void onLoadingStarted() {
}
@Override
public void onLoadingFailed(FailReason failReason) {
//On Loading Failed Logic
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
bitmap = loadedImage;
imgViewSetAsWp.setImageBitmap(bitmap);
}
@Override
public void onLoadingCancelled() {
// Do nothing
}
});
((ViewPager) view).addView(imageLayout, 0);
return imageLayout;
} else
return view;
}
@Override
//Other override methood of ImagePager
}
有没有办法得到正确的位图 膨胀视图时会出现问题:列表中使用的是同一个实例,因此当异步加载完成时,当viewpager尝试使用相同的imageView绘制不同的项目时,图像会发生更改。这是我如何修复我的 1) 创建名为ViewHolder的类
class ViewHolder {
public ImageView image;
}
2) 完成充气后,立即创建新的ViewHolder对象并将其绑定
ViewHolder holder = new ViewHolder();
holder.image = (ImageView) imageLayout.findViewById(R.id.image_item_pager);
之后,您可以像普通的ImageView
一样使用holder.image
希望有此帮助。当您膨胀视图时会出现问题:列表中使用的是同一个实例,因此当异步加载完成时,当viewpager尝试使用相同的imageView绘制不同的项目时,图像会发生更改。这是我如何修复我的 1) 创建名为ViewHolder的类
class ViewHolder {
public ImageView image;
}
2) 完成充气后,立即创建新的ViewHolder对象并将其绑定
ViewHolder holder = new ViewHolder();
holder.image = (ImageView) imageLayout.findViewById(R.id.image_item_pager);
之后,您可以像普通的ImageView
一样使用holder.image
希望对您有所帮助。如何获取当前视图- 然后:
View currentView = ...
ImageView currentImageView = (ImageView) currentView.findViewById(...);
BitmapDrawable bd = (BitmapDrawable) currentImageView.getDrawable();
Bitmap bmp = bd.getBitmap();
如何获取当前视图- 然后:
View currentView = ...
ImageView currentImageView = (ImageView) currentView.findViewById(...);
BitmapDrawable bd = (BitmapDrawable) currentImageView.getDrawable();
Bitmap bmp = bd.getBitmap();
谢谢重播。我的寻呼机工作正常。在imageView上加载精确的图像。问题是获取准确的位图
@Override public void onLoadingComplete(位图loadedImage){Bitmap=loadedImage;}
此函数用于在设置正确的图像后加载下一个或上一个图像。我需要当前的bimap图像。更改方法如何imageLoader.displayImage(图像[位置],图像视图)
最新版本的UniversalImageLoader
库具有displayImage
方法,该方法只需要image链接
和imageView
作为参数。我已经使用它一段时间了。我正在搜索当前以位图显示的图像@诺斯特拉的解决方案奏效了。谢谢:)谢谢重播。我的寻呼机工作正常。在imageView上加载精确的图像。问题是获取准确的位图@Override public void onLoadingComplete(位图loadedImage){Bitmap=loadedImage;}
此函数用于在设置正确的图像后加载下一个或上一个图像。我需要当前的bimap图像。更改方法如何imageLoader.displayImage(图像[位置],图像视图)
最新版本的UniversalImageLoader
库具有displayImage
方法,该方法只需要image链接
和imageView
作为参数。我已经使用它一段时间了。我正在搜索当前以位图显示的图像@诺斯特拉的解决方案奏效了。谢谢:)