2013-10-24 9 views
11

Come posso ottenere l'URI dell'immagine salvata in drawable. Ho provato i seguenti formati, ma ogni volta non è possibile caricare l'immagine.Ottieni URI dall'immagine selezionabile

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

Non so perché non posso prendere l'immagine URI ..

risposta

14

Prova questo:

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

Sempre lo stesso problema .. Impossibile caricare l'immagine .. – Bhavna

+0

cos'è il contesto? –

8

ho trovato la maggior parte delle risposte di confusione per un utente alle prime armi, quindi sono incluso un esempio.

your_package_name = org.xyz.abc immagine

in disegnabile è => myimage.jpg

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

Questo è quello che si ha realmente bisogno:

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)); 
+1

Credo che dovrebbe essere: Uri imageUri = Uri.parse (ContentResolver.SCHEME_ANDROID_RESOURCE + ": //".. + GetResources() getResourcePackageName (R.drawable.ic_launcher) + '/' + getResources() getResourceTypeName (R.drawable.ic_launcher) + '/' + String.valueOf (R.drawable.ic_launcher); – fobbymaster

1

Si può anche provare questo :

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