如何使用Android-Universal-Image-Loader共享图像?
问题描述:
如何使用Android通用图像加载程序共享图像 我有一个imageview通过图像加载器加载,但提供了一个URL加载器,我认为图像加载器已经完成了从URL写入图像到磁盘,然后显示它如何使用Android-Universal-Image-Loader共享图像?
我该如何分享它,而不用将其重新写入磁盘?
item_zoom_image_view是ImageView的 selectedItemImage是具有包含的URL属性的类
这里是我的形象装载机配置(http://...):
public void initImageLoader(Context context) {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheOnDisc().imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
context).threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.defaultDisplayImageOptions(options)
.memoryCache(new WeakMemoryCache())
.denyCacheImageMultipleSizesInMemory()
.tasksProcessingOrder(QueueProcessingType.LIFO).build();
imgLoader = ImageLoader.getInstance();
imgLoader.init(config);
}
,这里是我如何显示图像
ImageLoader imgLoader = AppData.imgLoader;
if (!selectedItemImage.getImageURL().trim().equals("")) {
imgLoader.displayImage(selectedItemImage.getImageURL(), item_zoom_image_view, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
Progress.ShowProgressDialog(true);
currentImageURI = "";
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
item_zoom_image_view.setImageResource(R.drawable.ic_artificial_flowers);
Progress.HideProgressDialog();;
currentImageURI = "";
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
Progress.HideProgressDialog();;
currentImageURI = imageUri;
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
item_zoom_image_view.setImageResource(R.drawable.ic_artificial_flowers);
Progress.HideProgressDialog();;
currentImageURI = "";
}
});
}
else
{
item_zoom_image_view.setImageResource(R.drawable.ic_artificial_flowers);
Progress.HideProgressDialog();;
currentImageURI = "";
}
这是我如何将影像分享的:
void ShareImg() {
try {
Uri bmpUri = Uri.parse(currentImageURI);
if (bmpUri != null) {
// Construct a ShareIntent with link to image
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
shareIntent.setType("image/*");
// Launch sharing dialog for image
startActivity(Intent.createChooser(shareIntent, "Share Image"));
} else {
// ...sharing failed, handle error
}
} catch (Exception e) {
}
}
的问题是,虽然显示图像,我拿着URI(currentImageURI)是不正确的或我不知道,但它显示黑色图像
答
您需要保存在存储位图分享它。你不能共享缓存图片哪个图片加载器从网址下载
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap
loadedImage) {
Progress.HideProgressDialog();;
currentImageURI = imageUri;
loadedImage
//save it in storage then share
}
为什么?我的意思是图像加载器已经提供了一个应该是正确的imageUri,所以我可以使用它来分享加载的图像!使用我分享的方法(我刚刚更新了我的问题) –