【发布时间】:2017-05-24 17:54:28
【问题描述】:
在我的RecyclerView 行内,我有一个ImageView,我想在同一个活动中预览这个ImageView 的图像(全屏预览)
为此我正在这样做:
public void showImageZoomable(String imageURL) {
imageViewZoomable.setVisibility(View.VISIBLE);
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheOnDisk(true).build();
imageLoader.loadImage(imageURL , options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
imageViewZoomable.setImage(ImageSource.bitmap(loadedImage));
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
toolBar.setVisibility(View.GONE);
getActivity().findViewById(R.id.tabs).setVisibility(View.GONE);
}
当用户点击ImageView(位于Recyclerview 的行)时触发上述函数并获取该图像的url(图像已缓存)
并使用imageLoader库将其分配给imageViewZoomable
它工作正常,但整个过程有点慢和滞后
知道如何改进它吗?或者我这样做的方式效率不高,那么请给我一个更好的选择
【问题讨论】:
-
1.您应该只声明一次 ImageLoader 和 DisplayImageOptions 实例。 2.使用loadImage并在Recyclerview的行(viewHolder适配器)上声明DisplayImageOptions使RecyclerView运行缓慢。如果你不能使用imageLoader的
displayImage,你可以试试Picasso或Glide等其他库
标签: android android-recyclerview android-imageview universal-image-loader