Как пройти изображение камеры от одного намерения на другие намерения в Android?
-
11-12-2019 - |
Вопрос
Я пытаюсь отправить изображение камеры из одного намерения на другое намерение отображать.В настоящее время я пытаюсь использовать следующий метод,
После того, как изображение захвачено
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case CAMERA_RECEIPTREQUEST:
if(resultCode== Activity.RESULT_OK)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
//ImageView jpgView = (ImageView)findViewById(R.id.imageView1);
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
.
во второй активности
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiptreview);
//creating view ids
createViewIds();
Bitmap receiptimage = (Bitmap) getIntent().getExtras().getParcelable("imagepass");
receipt.setImageBitmap(receiptimage);
}
.
Но он показывает ошибку Stackoverflow,
at java.util.HashMap$EntrySet.iterator(HashMap.java:944)
at android.os.Parcel.writeMapInternal(Parcel.java:486)
at android.os.Bundle.writeToParcel(Bundle.java:1552)
at android.os.Parcel.writeBundle(Parcel.java:502)
at android.content.Intent.writeToParcel(Intent.java:5477)
.
Я не уверен, пробую ли я неправильный метод. Я ищу определенный образец или решение этого.
Спасибо за вашу помощь, ребята.
Решение
Использование
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", receipt );
startActivity(imagepass);
.
вместо
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
.
Вы передаваете Image Image Image в imagepass.putExtra("imagepass", imagepass);
, так что пройдите экземпляр Bitmap
в imagepass.putExtra("imagepass", receipt );
Редактировать:
Для прохождения изображений (растровые изображения) между мероприятиями в Android см. Эти сообщения:
Другие советы
от того, что я вижу, что вы проходите, чтобы отправить себя.Попробуйте:
imagepass.putExtra("imagepass", receipt);
.
Может работать, все еще новичок в андроид сам.
Мы можем попробовать другой способ преобразовать изображение в байтовую массив, а затем пройти массив байтов через намерение, а в вызываемой деятельности мы можем преобразовать массив байта в Bitmap