如何使用Glide获取imageview上的URI

问题描述:

我正在使用'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

获得乌里改变乌尔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