从可绘制的图像获取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 ..

尝试这个:

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

我发现大多数的答案混乱的新手用户,所以我包括一个例子。

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

这是你真正需要的:

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

你也可以试试这个:

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