2013-10-24 83 views
11

如何獲取保存在可繪製圖像中的圖像的URI。我嘗試過以下格式,但每次都無法加載圖像。從可繪製圖像獲取URI

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

不知道爲什麼我不能獲取圖像URI ..

回答

14

試試這個:

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

仍然是同樣的問題..無法加載圖像.. – Bhavna

+0

上下文是什麼? –

8

我發現,大多數的答案是新手用戶混淆的,所以我包括一個例子。在繪製

your_package_name = org.xyz.abc

圖像=> 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

這是你真正需要的:

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

我認爲它應該是: 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

你也可以試試這個:

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