1

私のアプリケーションでは、組み込みのカメラ アクティビティを使用して画像を取得し、SD カードに保存しています。高解像度の画像を取得するために、intent.puttextras を使用しています。

最初のデバイス - コードが正常に動作し、解像度 640X480 の画像が得られました。

2番目のデバイス-組み込みのカメラアクティビティがキャプチャした画像の保存を要求すると、強制的に閉じます。しかし、デバイスのカメラ解像度を明示的に 640X480 に変更してアプリケーションを再実行すると、完全に正常に動作します。

質問:-

  1. これを克服する方法??
  2. これは Android バージョンに関連する問題でしょうか。2 つのデバイスの Android バージョンは異なります。
  3. 解像度パラメーター (640,480) を組み込みのカメラ アクティビティに渡す方法はありますか?? または、自作のカメラ活動が必要ですか??

ここにコードがあります

public void onClick(View v) {
    // TODO Auto-generated method stub

    if(v.getId()!=1000){
        imageFile = "bmp"+v.getId()+".png";

        File f = new File (folder,imageFile);
         imageUri = Uri.fromFile(f);
        Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri);
        startActivityForResult(i,CAMERA_PIC_REQUEST);   
    }
    if(v.getId()==1000){
        Intent openFinalShow = new Intent("com.integrated.mpr.FINALSHOW");
        startActivity(openFinalShow);
        finish();
    }

}

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

    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == RESULT_OK){
            return;
    }
}
4

2 に答える 2

1

ストックカメラを意図して解像度パラメータを渡すことはできないと思います。ここには、さまざまなカメラを備えたさまざまな電話に関して、また、ユーザーが上記の意図的な追加機能を認識しないさまざまなデフォルトのカメラアプリケーションを使用する可能性に関して問題があります。

問題の解決策は、独自のプレビューとカメラ設定を使用して、カスタムカメラアクティビティを作成することです。次に、記録された画像/ビデオの解像度を適切に設定できます。プレビューウィンドウの解像度やサイズなども同様です。

カメラ開発者ガイドおよびカスタムAndroidカメラの例に関するその他の検索が役立ちます

于 2012-08-23T15:44:15.903 に答える
0

インテントで解像度を指定できるか、そうでない場合は目的を達成できません。さらに、Camera.Parameters オブジェクトを介して画像サイズを設定するときは、Camera.getSupportedPitureSizes によって指定された値から 1 つだけを使用するようにしてください。

于 2013-07-13T13:43:11.130 に答える