Получить путь к изображению, которое можно рисовать, чтобы я мог опубликовать его на бэкэнд

У меня есть набор значков, хранящихся в папке с возможностью переноса.

На основе выбора пользователей я отправлю эти значки в серверную часть.

Когда я пытаюсь получить путь к этим чертежам, я получаю следующую ошибку

HTTP FAILED: 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));

Я упомянул следующее: ссылка говорит, что невозможно получить путь для объекта drawable.

Есть идеи, как я могу решить эту проблему?

stackoverflow.com/questions/8601070/…
AskNilesh 17.09.2018 09:31

да, это невозможно, потому что это не в физической файловой системе

pskink 17.09.2018 09:31
0
2
61
1

Ответы 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();
}

Теперь вы можете использовать файл.

Другие вопросы по теме