Страница 1 из 1

Сохранение изображения из приложения на sdcard

Добавлено: 31 янв 2012, 15:47
alogin
Возник еще один насущный вопрос, как из приложения сохранить картинку на sdcard

В приложении картинки хранятся в res/drawable выводятся на экран в LinearLayout (т.е. в linearlayout они прописаны background'ом) нужно чтобы оно по нажатию кнопки сохраняло ее в флешку куда нибудь

Есть мысли? желательно с примером ))))))

Re: Сохранение изображения из приложения на sdcard

Добавлено: 01 фев 2012, 16:20
damager82
Как вариант:

Код: Выделить всё

		Bitmap bmpToSave = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
		File sdCard = Environment.getExternalStorageDirectory();
		File directory = new File(sdCard.getAbsolutePath() + "/images/");
		directory.mkdirs();
		File file = new File(directory, "file.png");
		FileOutputStream fOut;
		try {
			fOut = new FileOutputStream(file);
			bmpToSave.compress(Bitmap.CompressFormat.PNG,100,fOut);
			fOut.flush();
			fOut.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
где:
R.drawable.icon - нужный вам drawable
/images/file.png - путь для сохранения

Если файл без альфа-слоя, то используйте Bitmap.CompressFormat.JPG в методе compress.

Re: Сохранение изображения из приложения на sdcard

Добавлено: 23 окт 2012, 16:45
Coment
Сорри за некровопрос :oops:

Правильно ли я понимаю, что если я хочу сохранить картинку из сети, то вместо decodeResource в первой строке предложеного примера, нужно вставить decodeStream (тут что-то типа InputStream(is)) ?

Re: Сохранение изображения из приложения на sdcard

Добавлено: 23 окт 2012, 17:00
rezak90
Правильно понимаешь. Поулчаешь поток в ответ от запроса и декодируешь Bitmap bitmap = BitmapFactory.decodeStream(stream); //кажется так