2015-01-01 72 views
0

我是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 
      } 
     }); 

    } 
} 
+0

http://developer.android.com/training/camera/index.html – CommonsWare

回答

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]更多的細節和一個完整的工作示例

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()方法以接收來自攝像機意圖的回調和數據。當用戶完成拍照或錄像(或取消操作)時,系統會調用此方法。

提供的鏈接將爲您提供示例。

+0

最讓我困惑的部分是我見過的每個例子都是在擴展活動的類中生成的。我更新了onClick函數,如下所示,onClick(View v){Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); imageFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),「test.jpg」); Uri tempuri = Uri.fromFile(imageFile); intent.putExtra(MediaStore.EXTRA_OUTPUT,tempuri)intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1); intent.putExtra startActivityForResult(); –

+0

我也寫了startActivityForResult(intent,0);但它不會接受符號。我該怎麼辦? –

相關問題