【问题标题】:Get URI from drawable image从可绘制图像中获取 URI
【发布时间】:2013-10-24 13:07:41
【问题描述】:

如何获取drawable中保存的图片的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..

【问题讨论】:

    标签: android uri drawable


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 在 Kit-Kat 和 Nougat 上运行良好
    【解决方案2】:

    我发现大多数答案让新手用户感到困惑,所以我举了一个例子。

    your_package_name = org.xyz.abc

    drawable 中的图像 => myimage.jpg

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

    【讨论】:

    • 简单。正是我需要的
    【解决方案3】:

    这是你真正需要的:

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

    【讨论】:

    • 我认为应该是: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);
    【解决方案4】:

    你也可以试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多