2017-02-13 7 views
2

私はサーバーからImageViewに画像を読み込むために「Glide」を使用しています。画像ビュー自体からそのURIを抽出することが可能かどうかを知りたいと思います。グライドで画像ビュー上のURIを取得する方法

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

........

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

私の目的は、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

することができますgetImageUri機能で

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

ファイルパスからイメージ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; 
        } 
       }); 

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

また、実行時のアクセス許可のために:あなたがマニフェストに権限を追加する必要があります

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); 
} 

:API> = 23

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

ありがとうございました。今すぐ試してみたい –

+0

このようなエラーが発生しました: java.lang.NullPointerException:uriString android.net.Uri $ StringUri。 (Uri.java:480) android.net.Uri $ StringUri。 (Uri.java:470)and35.png ibrahim.project.ContentDetail $ 13 $ 1.onResourceReady(ContentDetail.java:494) –

+0

どの行?許可を追加しましたか? – rafsanahmad007

関連する問題