2014-09-24 1 views
1

В первой деятельности:Как отправить изображение из одной активности в другую в андроиде kitkat?

Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
image.compress(Bitmap.CompressFormat.PNG, 100, stream); 
byte[] bytes = stream.toByteArray(); 
i.putExtra("image", bytes); 
startActivity(i); 

Во второй деятельности:

byte[] byteArray = extras.getByteArray("image"); 
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 

if (bmp != null) {   
    iv_1.setImageBitmap(bmp); 
} 

Это работает для всех устройств и версий. Но это не работает для Китката, почему? Как решить проблему в kitkat?

+3

Почему вы не можете сохранить изображение темнеет и отправить путь, установленный этим? – Jithu

+0

Я хочу, чтобы захваченное изображение и другое изображение (оба изображения) проходили одновременно до следующей активности. Как я могу пройти. – user3814997

+0

Yoy может сохранять два изображения в некоторой внешней папке и передавать имя. Если число является конкретным, вы можете fex имя изображения, например temp_1, temp_2 – Jithu

ответ

0

Передача такого огромного файла с помощью намерения не является хорошей практикой. Это замедлит процесс запуска новой деятельности.

Попробуйте сделать статическую ссылку на изображение и использовать его при следующем действии. Как только вы закончите, просто сделайте это null

0

Сделайте одноэлементный класс с Map<String, Bitmap>, который сохранит все нужные вам изображения и с помощью намерений отправьте только их ключевые имена.

0

Неэффективно передавать характеристики Bitmaps из одной операции в другую.

Просто попробуйте сохранить растровое изображение в памяти и отправить «Путь» растрового изображения к другому действию, а затем просто используйте метод BitmapFactory.decodeFile(pathName); в другом действии, чтобы получить битмап с пути.

0

В вашей первой активности конвертировать ImageView в растровые

imageView.buildDrawingCache(); 
Bitmap bitmap = imageView.getDrawingCache(); 

Intent intent = new Intent(this, NewActivity.class); 
intent.putExtra("BitmapImage", bitmap); 

во второй активности

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 

его рабочих на KitKat также.

+0

Я хочу захваченное изображение и другое изображение, проходящее одновременно до следующей активности. Как я могу пройти. – user3814997

+0

Вы также можете передать захваченное изображение, как на следующую операцию. –

+0

Если я делаю код выше, он показывает FAILED BINDER TRANSACTION. Если мне нравится мой вопрос, он напрямую закрывается только в kitkat. как я могу решить эту проблему? – user3814997

Смежные вопросы