1

インテントを作成してカメラを使用しています:

Intent cameraI = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

そして、次のように開始します。

startActivityForResult(cameraI, request);

ここで、request は定義済みの定数整数です。

次に、onActivityResult() を取得します。

public void onActivityResult(int req, int res, Intent data) throws NullPointerException
{
    try{

    super.onActivityResult(req, res, data);
    if(req == request)
    {
        Bitmap picture = (Bitmap) data.getExtras().get("data");
        ImageView image = (ImageView) findViewById(R.id.imageView1);
        image.setImageBitmap(picture);
    }//if
    else
    {
        Toast.makeText(getApplicationContext(), "No picture taken", 4);
    }//else
    }catch (NullPointerException e){
        String error = "null pointer exception";
        Toast.makeText(getApplicationContext(), error, 4);
    }
}//onActivityResult

私の苦境は、このコンピューターにカメラがないことです。Eclipse のデフォルトのチェッカーボードと動く四角形のアニメーションが表示されます。これは実際に機能しますか?「写真を撮る」ボタンをクリックしていますが、何も起こりません。私がやりたいことは、1 枚の写真を撮り、それを i を呼び出したアクティビティに返すことです。それはデフォルトのアクションですか、それとも 1 枚の写真を撮った後に戻るように指定する必要がありますか?

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

4

3 に答える 3

2

はい、新しいエミュレーター (2.3.3) はテストには問題ないはずです。

一部のデバイスには、異なる形式でデータを返すという問題があります。代わりに、場所 (選択可能) をカメラ アプリに渡すと、新しい画像がその場所に保存され、指定した場所をやみくもに使用できます。

例えば

ファイル tempFolder = new File(Environment.getExternalStorageDirectory().getAbsolutePath()
                + "/myfolder");
        tempFolder.mkdir();
        file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/myfolder",
                String.valueOf(System.currentTimeMillis()) + ".jpg");
        インテント インテント = 新しいインテント(MediaStore.ACTION_IMAGE_CAPTURE);
        Intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(ファイル));
        startActivityForResult(インテント、TAKE_PICTURE);
于 2012-05-18T04:00:25.847 に答える
0

問題のコードは最終的に機能しました。デバイスでテストしたところ、希望どおりに画像が返されました。Eclipse のエミュレートされたカメラは単に機能しませんでした。私の記憶が正しければ、カメラを有効にできますが、それはまったく別の議論です。

于 2012-06-15T17:30:02.687 に答える
0

シミュレーターとその機能についてはわかりませんが、役立つチュートリアルを次に示します。

http://achorniy.wordpress.com/2010/04/26/howto-launch-android-camera-using-intents/

于 2012-05-17T17:33:08.517 に答える