문제

카메라 이미지를 하나의 의도에서 다른 의도로 보내려고합니다.현재 다음 방법을 사용하여 노력하고 있습니다.

이미지가 캡처되면

     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);
.

imagepass.putExtra("imagepass", imagepass);에서 Bitmap에서 imagepass.putExtra("imagepass", receipt ); 인스턴스를 전달하는 Intent 인스턴스 imagePass를 전달합니다

편집 :

Android의 활동간에 이미지 (비트 맵)를 통과하기 위해 다음 게시물보기 :

이미지를 어떻게 통과합니까 (비트 맵) 번들을 이용한 Android 활동 사이에서?

어떻게 통과 할 수 있습니까?한 활동에서 다른 활동으로 비트 맵 객체

다른 팁

내가 당신의 의도 자체를 전달할 수있는 것을 볼 수있는 것에서.시도해보십시오 :

imagepass.putExtra("imagepass", receipt);
.

가 작동 할 수 있습니다. 아직도 Android 내 자신을 사용합니다.

이미지를 바이트 배열로 변환 한 다음 의도 및 활동을 통해 바이트 배열을 전달하여 바이트 배열을 비트 맵 로 변환 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top