1

こんにちは、ユーザーがアプリから写真をキャプチャできるようにする機能を追加したばかりで、カメラの意図が適切に設定されています [少なくともそうだと思います]。「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 );
}

他のコードが必要な場合は提供できますが、これはアプリで使用したメインのカメラ コードです。

4

3 に答える 3

6

これをメインフェストで使用しましたか

 <uses-permission android:name="android.permission.CAMERA" />
 <uses-feature android:name="android.hardware.camera" />
 <uses-feature android:name="android.hardware.camera.autofocus" />

このリンクもたどることができます。

http://www.vogella.com/articles/AndroidCamera/article.html

http://marakana.com/forums/android/examples/39.html

于 2012-05-10T18:24:50.460 に答える
2

イメージを書き込むディレクトリを作成するのを忘れました。ファイル オブジェクトを作成する前に、この行を追加します。

File path = new File(Environment.getExternalStorageDirectory().getPath() + "/images/").
path.mkdirs();
于 2013-08-06T09:41:42.857 に答える
0

こんにちは、ソリューションに私の完全なコードを使用できます。これはリンクです:- Imp Link

于 2012-11-29T16:39:50.060 に答える