web-dev-qa-db-fra.com

Obtenir l'URI à partir d'une image pouvant être dessinée

Comment puis-je obtenir l'URI de l'image enregistrée dans drawable. J'ai essayé de suivre les formats, mais à chaque fois, il ne peut pas charger l'image.

imageURI= Uri.parse("Android.resource://" + getPackageName() + "/" + R.drawable.indoor_thumbnail1);
imageURI=Uri.parse("Android.resource://"+getPackageName()+"/drawables/imageName");
 imageURI=Uri.parse("Android.resource://"+getPackageName()+"/drawables/imageName.png");
imageURI = Uri.parse("Android.resource://"+ getResources().getResourceTypeName(R.drawable.indoor_thumbnail1)+"/" +getResources().getResourceEntryName(R.drawable.indoor_thumbnail1)+".png" );

Je ne sais pas pourquoi je ne peux pas récupérer l'URI de l'image .. 

11
Bhavna

Essaye ça:

Resources resources = context.getResources();
Uri.parse(ContentResolver.SCHEME_Android_RESOURCE + "://" + resources.getResourcePackageName(resId) + '/' + resources.getResourceTypeName(resId) + '/' + resources.getResourceEntryName(resId) );
15
trippedout

Voici ce dont vous avez vraiment besoin:

Uri imageUri = Uri.parse(ContentResolver.SCHEME_Android_RESOURCE +
"://" + getResources().getResourcePackageName(R.drawable.ic_launcher)
+ '/' + getResources().getResourceTypeName(R.drawable.ic_launcher) + '/' + getResources().getResourceEntryName(R.drawable.ic_launcher) );
10
xnagyg

J'ai trouvé la plupart des réponses déroutantes pour un utilisateur novice, donc j'inclus un exemple.

your_package_name = org.xyz.abc

l'image dans drawable est => myimage.jpg

Uri uri = Uri.parse("Android.resource://org.xyz.abc/drawable/myimage");
or 
Uri uri = Uri.parse("Android.resource://"+context.getPackageName()+"/drawable/myimage");
10
jaipster

Vous pouvez aussi essayer ceci:

    Bitmap bm = BitmapFactory.decodeResource( getResources(), R.drawable.myimage_name);

String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
            File file = new File(extStorageDirectory, "MyIMG.png");
            FileOutputStream outStream = null;
            try {
                outStream = new FileOutputStream(file);
                bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
                outStream.flush();
                outStream.close();

    } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

    Uri imguri=Uri.fromFile(file);
1
zephyr