1) Передача в качестве дополнений
В Задании A вы декодируете свое изображение и отправляете его через намерение:
- С помощью этого метода (дополнительно) изображение передается с интервалом 162 миллисекунды
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("picture", b);
startActivity(intent);
В Деятельность B вы получаете намерение с байтовым массивом (декодированное изображение) ипримените его как источник к ImageView:
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);
2) Сохранение файла изображения и передача его ссылки в другое действие
"Ограничение размера: сохраняйте его как можно меньшим. Определенно не помещайте туда растровое изображениеесли он не больше пиктограммы (32x32 или чего-либо другого).
- В * Activity A * сохраните файл (Внутреннее хранилище)
String fileName = "SomeName.png";
try {
FileOutputStream fileOutStream = openFileOutput(fileName, MODE_PRIVATE);
fileOutStream.write(b); //b is byte array
//(used if you have your picture downloaded
// from the *Web* or got it from the *devices camera*)
//otherwise this technique is useless
fileOutStream.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
- Передать местоположение в виде строки для действия B
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("picname", fileName);
- In * Activity B * получить файл
Bundle extras = getIntent().getExtras();
String fileName = extras.getString("picname");
- Сделать * нарисованным * из картинки
File filePath = getFileStreamPath(fileName);
Drawable d = Drawable.createFromPath(filePath.toString());
- Примените его к ресурсу ImageView
someImageView.setBackgroundDrawable(d);