Я хочу открыть изображение в моей папке с возможностью загрузки через приложения по умолчанию для моего телефона (Галерея и т. Д.).
Место моего изображения: drawable / image.png
Код:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(""), "image/*"); startActivity(intent);
Что мне нужно написать в функции Uri.parse для просмотра файла изображения?
Для этого вам нужно скопировать изображение в папке с возможностью переноса на SD-карту, а затем указать путь к файлу на SD-карте.
Вот код:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.imagename); ByteArrayOutputStream bytes = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes); File f = new File(Environment.getExternalStorageDirectory() + File.separator + "test.jpg"); try { f.createNewFile(); FileOutputStream fo = new FileOutputStream(f); fo.write(bytes.toByteArray()); fo.close(); } catch (IOException e) { e.printStackTrace(); } Uri path = Uri.fromFile(f); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(path, "image/*"); startActivity(intent);
Обратите внимание, что imagename – это имя изображения в вашей папке с рисунком
И не забудьте добавить разрешение на доступ к SD-карте в файле манифеста
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Я не думаю, что вы можете это сделать. Этот чертеж является приватным для вашего приложения, и другие приложения не могут его использовать. Вы должны создать свой собственный ImageViewer
или скопировать эти чертежи на SD-карту и установить Uri
при запуске Intent
.
Вы можете получить доступ к своему изображению с помощью этого кода:
R.drawable.image
Например, вы можете использовать этот код в своем методе onCreate:
ImageView img = new ImageView(this); img.setImageDrawable(R.drawable.image);