Как настроить намерение просмотра изображения, сохраненного во внутренней памяти, с помощью программы просмотра Android по умолчанию?

1

То, что я пытаюсь сделать, - загрузить изображение из Интернета (его в формате GIF, если это что-то изменит) и показать его на экране с возможностью масштабирования/панорамирования. Я успешно загрузил изображение в экземпляр Bitmap myBitmap, но ImageView не имеет функции масштабирования. Поэтому вместо этого я готов представить его с помощью программы просмотра по умолчанию, которая имеет функции масштабирования/панорамирования. Чтобы настроить намерение, мне нужно предоставить URI сохраненному файлу. Поэтому сначала я сохраняю файл во внутреннем хранилище (также предоставляя доступ к другим приложениям с помощью MODE_WORLD_READABLE):

    try {
        FileOutputStream out = openFileOutput("scrible",
                Context.MODE_WORLD_READABLE);
        myBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
    } catch (FileNotFoundException e) {
        Log.d(myTag, e.toString());
    }

Затем я успешно проверю его действительно читаемое:

    File myFile = new File(getFilesDir(), "scrible");
    if (myFile.canRead()) {
        Log.d(myTag, "Its readable");
    }

Затем я пытаюсь настроить намерение (что дает мне ошибку: неожиданно остановился):

    Uri fileUri = Uri.fromFile(myFile);
    startActivity(new Intent(Intent.ACTION_VIEW, fileUri));

Я попытался настроить намерение отдельно, и он не дает сообщение об ошибке antil для startActivity (намерение);

Что я делаю неправильно?

Теги:
android-image

1 ответ

3
Лучший ответ

Для меня хорошо работает следующее:

Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(outputFileName)),"image/jpeg");
startActivity(intent);

Отличие, которое я вижу, это то, что вы не вызываете setDataAndType.

  • 0
    Спасибо, что сработало!
  • 0
    Это работает !!!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню