0

Android-Universal-Image-Loader를 사용하여 이미지를 공유하는 방법 imageloader를 통해로드되지만 이미지 로더에 URL을 제공하는 imageview가 있습니다. 이미지 로더가 이미 이미지를 URL에서 디스크로 작성한 다음 그것을 표시했습니다Android-Universal-Image-Loader를 사용하여 이미지를 공유하는 방법은 무엇입니까?

어떻게 디스크에 다시 쓰지 않고도 공유 할 수 있습니까?

item_zoom_image_view는 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가) 정확하지 않은 것입니다 또는 내가 모르는 그러나

답변

0

은 공유 스토리지에서 비트 맵을 저장해야 검은 이미지를 보여줍니다 그것. 당신은 어떤 이미지 로더가 URL에서 다운로드 캐시 이미지를 공유 할 수 없다

@Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap 
    loadedImage) { 
     Progress.HideProgressDialog();; 
     currentImageURI = imageUri; 
       loadedImage 
//save it in storage then share 
    } 
+0

왜? 이미지 로더가 이미 imageUri를 제공하고있어로드 된 이미지를 공유 할 수 있습니다. 내가 공유 (나는 방금 내 질문을 업데이 트)에 추가 된 방법을 사용하여 –