2011-04-26 14 views
5

我想開一個設備的攝像頭,當我們點擊在我們的應用程序的按鈕。請幫助我。相機推出android系統中

+0

如果你想使用你的應用程序拍攝的照片使用這裏提供的代碼[教程](http://achorniy.wordpress.com/2010/04/26/howto-launch-android-camera-using-intents/) – pumpkee 2011-04-26 09:36:20

回答

17

裏面按鈕的onClick,

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
startActivityForResult(intent, 0); 

並添加Camers使用權限在manifest文件。

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

在這裏看到的更多討論Android camera intent

+0

巴伊ACTION_CAMERA_BUTTON nahi樂拉哈海。它不工作 – 2011-04-26 09:38:50

+0

嘿錯誤,我寫that..see的編輯答案.. – 2011-04-26 09:39:51

+0

@Kartik使用你的答案其他相機應用程序中的選擇也被用做u能夠糾正,只有系統默認的相機應用將打開。 – PiyushMishra 2012-01-30 11:16:26

0

首先,你需要過濾系統的應用程序,然後你可以檢查相機的活動,我只是回答了類似的問題here

0

使用此

` BtnSelectImage.setOnClickListener(new Button.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       startCamera(); 
       Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       intent.putExtra(MediaStore.EXTRA_OUTPUT, 
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath()); 
       startActivityForResult(intent, 1); 
      } 
     });                        ` 
0
#initialize in main activity 
    path = Environment.getExternalStorageDirectory() 
      + "/images/make_machine_example.jpg"; # 
    ImageView image=(ImageView)findViewById(R.id.image); 
//--------------------------------------------------|| 

public void FromCamera(View) { 

    Log.i("camera", "startCameraActivity()"); 
    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, 1); 

} 

public void FromCard() { 
    Intent i = new Intent(Intent.ACTION_PICK, 
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    startActivityForResult(i, 2); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == 2 && resultCode == RESULT_OK 
      && null != data) { 

     Uri selectedImage = data.getData(); 
     String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

     Cursor cursor = getContentResolver().query(selectedImage, 
       filePathColumn, null, null, null); 
     cursor.moveToFirst(); 

     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     String picturePath = cursor.getString(columnIndex); 
     cursor.close(); 

     bitmap = BitmapFactory.decodeFile(picturePath); 
     image.setImageBitmap(bitmap); 

     if (bitmap != null) { 
      ImageView rotate = (ImageView) findViewById(R.id.rotate); 

     } 

    } else { 

     Log.i("SonaSys", "resultCode: " + resultCode); 
     switch (resultCode) { 
     case 0: 
      Log.i("SonaSys", "User cancelled"); 
      break; 
     case -1: 
      onPhotoTaken(); 
      break; 

     } 

    } 

} 

protected void onPhotoTaken() { 
    // Log message 
    Log.i("SonaSys", "onPhotoTaken"); 
    taken = true; 
    imgCapFlag = true; 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = 4; 
    bitmap = BitmapFactory.decodeFile(path, options); 
    image.setImageBitmap(bitmap); 


} 
-2

這工作(在片段onCreateView生命週期法):

Button button1 = (Button) view.findViewById(R.id.button1); 
    button1.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE)); 
     } 
    });