0

アレルギーのある人がアレルギー反応を起こしたときの反応や、食べた食べ物を写真に収められるようなアプリを作りたいと思っています。次に、ドキュメントに情報を追加し、そのすべてに加えて、ジオローカリゼーションを保存できます。(アレルギーのある人は、通常、6か月に1回アレルギーを見ることができるため、日記が必要であるという考えです)

私は動作するこのコードを書きました:私はカメラを使用できるように電話のメニューボタンを押す必要があります。でも、カムが使えるボタンが欲しいです。誰かが私のコードを変更し、カメラの使用を許可するボタンを正しく追加して、Android携帯で写真を撮ることができるようにすることで私を助けてくれますか?

忠実に、

私のコード:

パッケージandroid.camera;

        import android.app.Activity;
        import android.content.Intent;
        import android.graphics.Bitmap;
        import android.os.Bundle;
    import android.provider.MediaStore;
        import android.view.Menu;
        import android.view.MenuInflater;
        import android.view.MenuItem;
        import android.widget.ImageView;



        public class CameraActivity extends Activity {

            private static final int PICTURE_RESULT = 9;

            private Bitmap mPicture;
            private ImageView mView;

            public void onCreate(Bundle icicle) {
                super.onCreate(icicle);
                setContentView(R.layout.main);

                mView = (ImageView) findViewById(R.id.view);
            }

            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.menu, menu);
                return true;
            }

            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                case R.id.camera:
                    Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    CameraActivity.this.startActivityForResult(camera, PICTURE_RESULT);
                    return true;
                default:
                    return super.onOptionsItemSelected(item);
                }
            }

    /*      public void onDestroy() {
                super.onDestroy();
                if (mPicture != null) {  
                    mPicture.recycle();
                }
            }*/

            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);

                // if results comes from the camera activity
                if (requestCode == PICTURE_RESULT) {

                    // if a picture was taken
                    if (resultCode == Activity.RESULT_OK) {
                        // Free the data of the last picture
                        if(mPicture != null)
                            mPicture.recycle();

                        // Get the picture taken by the user
                        mPicture = (Bitmap) data.getExtras().get("data");

                        // Avoid IllegalStateException with Immutable bitmap 
                        Bitmap pic = mPicture.copy(mPicture.getConfig(), true);
                        mPicture.recycle();
                        mPicture = pic; 

                        // Show the picture
                        mView.setImageBitmap(mPicture);

                        // if user canceled from the camera activity
                    } else if (resultCode == Activity.RESULT_CANCELED) {

                    }
                }
            }
        }
4

1 に答える 1

0

これはあなたが求めているものだと思います...

レイアウト ファイル (main.xml) にボタンを追加します。

<Button android:layout_width="wrap_content" android:layout_height="wrap_content"
 android:text="Take Picture" android:id="@+id/take_picture"></Button>

次に、onCreate メソッドで:

public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.main);

            mView = (ImageView) findViewById(R.id.view);
            mTakePictureButton = (Button) findViewById(R.id.take_picture);
            mTakePictureButton.setClickable(true);
            mTakePictureButton.setOnClickListener(new View.onClickListener(){

                    @Override
        public void onClick(View v) {
            Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camera, PICTURE_RESULT);

        }
            });
        }
于 2012-05-11T17:37:57.960 に答える