如何在android studio中按下按钮后启动相机?

时间:2015-01-01 17:57:27

标签: android

我是android studio的初学者。我创建了一个对话视图,然后是按钮,进入相机激活。我无法找到激活它的方法。我只是想在按下按钮后立即激活相机。这是我的代码:

public class AddPictureDialog extends Dialog {

    private Context context;

    private Camera camera;

    final Button takePhoto;

    private DB myDB;
    private SQLiteDatabase database;
    private Person person = new Person();

    public AddPictureDialog( Context context) {
        super(context);
        this.context = context;

        setCanceledOnTouchOutside(false);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.addimage_layout);

        camera = new Camera();


        takePhoto = (Button) findViewById(R.id.takenewphoto);
        takePhoto.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                // Code here
            }
        });

    }
}

2 个答案:

答案 0 :(得分:1)

首先将此添加到您的清单文件中:

 <uses-feature android:name="android.hardware.camera"
              android:required="true" />

为了使用相机 并且,如果您使用小于4.3的android,则能够保存图片:

如果您还不知道,请稍微了解Intents。 (一个意图基本上让你启动一个外部活动)

然后按照android developper

上的说明操作

添加以下两个字段:

private ImageView mImageView;
private Bitmap mImageBitmap;

和这个方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        Bitmap imageBitmap = (Bitmap) extras.get("data");
        mImageView.setImageBitmap(imageBitmap);
    }
}

单击按钮时调用此按钮。

private void handleSmallCameraPhoto(Intent intent) {
    Bundle extras = intent.getExtras();
    mImageBitmap = (Bitmap) extras.get("data");
    mImageView.setImageBitmap(mImageBitmap);
    mVideoUri = null;
    mImageView.setVisibility(View.VISIBLE);
    mVideoView.setVisibility(View.INVISIBLE);
}

转到[http://developer.android.com/training/camera/photobasics.html][3]了解更多详情和完整的工作示例

答案 1 :(得分:0)

请参阅此处的文档:http://developer.android.com/guide/topics/media/camera.html

首先,您需要为清单文件添加相机权限。

<uses-feature android:name="android.hardware.camera" android:required="false" />

如果要存储图片,还需要添加存储权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

该链接还列出了录音和位置标记权限。

之后,请按照以下步骤操作:

  1. 撰写相机意图 - 使用以下其中一种意图类型创建请求图片或视频的意图:

    • MediaStore.ACTION_IMAGE_CAPTURE - 用于从现有相机应用程序请求图像的意图操作类型。
    • MediaStore.ACTION_VIDEO_CAPTURE - 用于从现有相机应用程序请求视频的意图操作类型。
  2. 启动相机意图 - 使用startActivityForResult()方法执行相机意图。启动意图后,相机应用程序用户界面将显示在设备屏幕上,用户可以拍摄照片或视频。

  3. 接收意图结果 - 在应用程序中设置onActivityResult()方法,以接收来自摄像头意图的回调和数据。当用户完成拍摄照片或视频(或取消操作)时,系统会调用此方法。

  4. 提供的链接将为您提供示例。