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

Я пытаюсь загрузить изображение из Интернета (в формате 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));

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

Что я делаю не так?

1 Ответ

3 голосов
/ 08 июня 2011

Мне хорошо подходит следующее:

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

Разница, которую я вижу, в том, что вы не называете setDataAndType.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...