So teilen Sie ein Bild mit Android-Universal-Image-Loader Ich habe eine Imageview, die durch Image-Loader geladen wird, aber eine URL zum Image Loader, ich denke, der Image Loader bereits das Schreiben des Bildes von URL auf Festplatte und dann getan angezeigtWie kann ich Bilder mit Android-Universal-Image-Loader teilen?
Wie kann ich es teilen, ohne es auf die Festplatte zu schreiben?
item_zoom_image_view ist Image selectedItemImage eine Klasse, die eine Eigenschaft hat, die die URL enthält
hier ist mein Bild loader config (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);
}
und hier ist, wie ich das Bild anzeigen
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 = "";
}
Hier ist, wie ich das Bild teilen:
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) {
}
}
das Problem ist, dass die URI, die ich während der Anzeige des Bildes nahm (currentImageURI) nicht korrekt ist oder ich weiß nicht, aber es zeigt ein schwarzes Bild
Warum? Ich meine, der Image Loader liefert bereits eine ImageUri, die korrekt sein soll, damit ich das geladene Bild teilen kann! Verwenden der Methode, die ich zum Teilen hinzugefügt habe (ich habe gerade meine Frage aktualisiert) –