こんにちは、ユーザーがアプリから写真をキャプチャできるようにする機能を追加したばかりで、カメラの意図が適切に設定されています [少なくともそうだと思います]。「xml」ファイルにボタンを設定し、それに応じて「class/java」ファイルにインテントとボタンを設定します。アプリをテストすると、ボタンが機能し、ネイティブの android 4.0.4 カメラが読み込まれ、正常に写真が撮られますが、「チェックマーク」をクリックすると [古いバージョンの Android の「OK」ボタン] に戻りません。アプリ。カメラは、フリーズすることも何もないすべての機能を引き続き維持します。写真を撮り直すか、キャンセルするかを選択できます。「OK/チェックマーク」ボタンだけではまったく機能しません。
public class XXXXXXXXXXX extends Activity
{
Button button;
String path;
boolean taken;
static final String PHOTO_TAKEN = "photo_taken";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.XXXXXXXX);
button = ( Button ) findViewById( R.id.take_picture );
button.setOnClickListener( new ButtonClickHandler() );
path = Environment.getExternalStorageDirectory() + "/images/testing-cam.jpg";
}
public class ButtonClickHandler implements View.OnClickListener
{
public void onClick( View view )
{
Log.i("Button", ".onClick()" );
startCameraActivity();
}
}
protected void startCameraActivity()
{
Log.i("Start", "CameraActivity()" );
File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch( resultCode )
{
case 0:
break;
case -1:
onPhotoTaken();
break;
}
}
protected void onPhotoTaken()
{
taken = true;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeFile( _path, options );
image.setImageBitmap(bitmap);
field.setVisibility( View.GONE );
}
他のコードが必要な場合は提供できますが、これはアプリで使用したメインのカメラ コードです。