0

あるインテントから別のインテントにカメラ画像を送信して表示しようとしています。現在、私は次の方法を使用しようとしています、

画像がキャプチャされたら

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

2番目のアクティビティで

      @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)

間違った方法を試しているかどうかわかりません。これに対するサンプルまたは解決策を探しています。

助けてくれてありがとう。

4

3 に答える 3

3

使用する

         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をimagepass.putExtra("imagepass", imagepass);渡すので、Bitmapインスタンスを渡しますimagepass.putExtra("imagepass", receipt );

編集:

Androidのアクティビティ間で画像(ビットマップ)を渡すには、次の投稿を参照してください。

バンドルを使用してAndroidアクティビティ間で画像(ビットマップ)をどのように渡しますか?

あるアクティビティから別のアクティビティにビットマップオブジェクトを渡すにはどうすればよいですか

于 2012-05-18T15:20:49.580 に答える
0

私が見ることができるものから、あなたが送信する意図自体を通過していることがわかります。試す:

imagepass.putExtra("imagepass", receipt);

動作する可能性がありますが、Android自体はまだ新しいです。

于 2012-05-18T15:22:00.827 に答える
0

画像をバイト配列に変換してから、バイト配列をインテントに渡す別の方法を試すことができます。呼び出されるアクティビティでは、バイト配列をビットマップに変換できます。

于 2013-02-21T06:53:05.163 に答える