获取可绘制图像的路径,以便我可以将其发布到后端

时间:2018-09-17 07:30:11

标签: android file android-studio android-drawable android-resources

我在可绘制文件夹中存储了一组图标。

基于用户的选择,我会将这些图标发布到后端。

当我尝试检索这些可绘制对象的路径时,出现以下错误

HTTP失败:java.io.FileNotFoundException:(无此类文件或目录)

这就是我要走的路

public String getURLForResource (int resourceId) {
        return Uri.parse("android.resource://"+ BuildConfig.APPLICATION_ID+"/" +resourceId).toString();
    }

File fileToUpload  = new File(getURLForResource(R.drawable.icon));

我已经提到以下link,说不可能检索可绘制对象的路径。

关于如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

作为解决方案,您可以将可绘制对象写入文件。

将可绘制对象转换为位图

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

将位图保存到文件

String path = Environment.getExternalStorageDirectory().toString();
File file = new File(path, "image" + System.currentTimeMillis() + ".jpg");
try (FileOutputStream out = new FileOutputStream(file)) {
    bm.compress(Bitmap.CompressFormat.PNG, 100, out);
    out.flush(); // Not really required
    out.close(); // do not forget to close the stream
} catch (IOException e) {
    e.printStackTrace();
}

您现在可以使用文件。