1

私は以下のコードに少し疑問があります

@Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

            startActivityForResult(i, 0);
        }

    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode==0 && resultCode==RESULT_OK ){

        Bundle extras = data.getExtras();
        //get the cropped bitmap
        Bitmap thePic = extras.getParcelable("data");


        ImageView image =(ImageView) findViewById(R.id.imageView1);
        image.setImageBitmap(thePic);

    }
}

extras.getParcelable( "data"); ここでのコードの行「data」は、パーセル可能なオブジェクトへのキーとして渡されます。

私の質問は、クラスで「data」という名前のキーがすでに定義されているかどうかです。またはこれがどのように受け入れられるかの理由。

4

1 に答える 1

0

Intentで受信した にサムネイルを追加するのは、カメラ アプリの役割ですonActivityResult(...)Bitmap基本的に、キーとしてインテントに値を追加し"data"ます。したがって、返されたインテントからキーでその値を取得しようとしても問題ありません。これは、Android 開発者向け Web サイトの「写真を簡単に撮る」チュートリアルでも示されています。

Bundle extras = intent.getExtras();
mImageBitmap = (Bitmap) extras.get("data");

ただし、経験上、すべてのカメラ アプリがこの動作を尊重しているわけではありません。私はデータキーが実際にそこにあることに依存したり、返されたインテントがnullその問題であることに依存したりしません。

于 2012-12-14T03:39:41.963 に答える