У меня есть URL изображения. Что мне нужно сделать, это запустить средство просмотра изображений по умолчанию для изображений, используя намерение.
Я попытался запустить его с помощью:
Uri uri = Uri.parse("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png");
Intent it = new Intent(Intent.ACTION_VIEW);
it.setDataAndType(uri, "image/*")
startActivity(it);
Но это не работает. Если я не укажу тип данных, намерение запускает браузер, поскольку данные являются URL-адресом. Это работает в основном (так как вы можете видеть изображение в браузере), но мне бы хотелось, чтобы галерея отображала для меня изображение.
Я также могу загрузить изображение в растровое изображение, но я все равно не знаю, как отобразить растровое изображение с помощью галереи (если это вообще возможно). Есть идеи?
РЕДАКТИРОВАТЬ: Я попытался сохранить растровое изображение в кэш, а затем запустить средство просмотра для этого файла, но он не работает. Можете ли вы заметить ошибки в моем коде? (Класс Utilities - это класс, который я написал. Метод просто создает растровое изображение. Он работает, это не проблема)
File temp = File.createTempFile("tempImage", ".jpg", getContext().getCacheDir());
Bitmap bmp = Utilities.loadBitmap(largeUrl.toString());
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(temp));
bmp.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.close();
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(temp), "image/jpg");
((Activity) getContext()).startActivity(intent);
РЕДАКТИРОВАТЬ 2 : Я решил, что мне, возможно, понадобятся загруженные изображения, поэтому я решил сначала сохранить их на SD-карте. Это создало другие проблемы. Я задал новый вопрос , потому что это другая проблема.