2017-02-13 57 views
2

我正在使用'Glide'將圖像從服務器加載到ImageView。我想知道是否有可能從圖像視圖本身提取該URI。如何使用Glide獲取imageview上的URI

ImageView contentImage = (ImageView) findViewById(R.id.contentImage); 

........

Glide.with(getApplicationContext()).load(contentImageUrl) 
.crossFade() 
.diskCacheStrategy(DiskCacheStrategy.ALL) 
.into(contentImage); 

我的目標是共享的ImageView圖像。 如何使用Glide在imageview上獲取URI?

Uri uri = ?????????????? 

Intent shareIntent = new Intent(); 
shareIntent.setAction(Intent.ACTION_SEND); 
shareIntent.setType("image/*"); 
shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
startActivity(Intent.createChooser(shareIntent, "Share Image")); 
+0

你可以從filepath獲取圖像uri。這不夠嗎? – tahsinRupam

回答

3

獲得烏里改變烏爾Glide實施:

Bitmap bitmap; 

Glide.with(getApplicationContext()) 
       .load(contentImageUrl) 
       .asBitmap() 
       .into(new SimpleTarget<Bitmap>() { 
        @Override 
        public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
         // you can do something with loaded bitmap here 
         contentImage.setImageBitmap(resource); 
         bitmap= resource; 
        } 
       }); 

現在所說的方法;

public Uri getImageUri(Context inContext, Bitmap inImage) { 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
    String path = MediaStore.Images.Media.insertImage(MainActivity.this.getContentResolver(), inImage, UUID.randomUUID().toString() + ".png", "drawing"); 
    return Uri.parse(path); 
} 

您需要添加許可清單中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

而且運行時許可:

//get URI from bitmap 
    Uri uri = getImageUri(getApplicationContext(),bitmap); 
getImageUri功能

API> = 23

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 
+0

非常感謝,我現在想試試 –

+0

發生了這樣的錯誤: java.lang.NullPointerException:uriString at android.net.Uri $ StringUri。 (Uri.java:480) at android.net.Uri $ StringUri。 (Uri.java:470) 在android.net.Uri.parse(Uri.java:442) 在com.uruker.ibrahim.project.ContentDetail.getImageUri(ContentDetail.java:654) 在com.uruker。 ibrahim.project.ContentDetail $ 13 $ 1.onResourceReady(ContentDetail.java:494) –

+0

在哪一行?你是否添加了許可? – rafsanahmad007