2013-07-20 63 views
-1

嘿,我正在寫代碼來捕捉圖像,但我的onPictureTaken方法從來沒有被調用...我在哪裏出錯?Android相機不保存圖片

我的代碼是

btnCapture.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      cam.takePicture(null, null, new TakeMyPicture()); 
     } 
    }); 



    class TakeMyPicture implements PictureCallback 
{ 

    @Override 
    public void onPictureTaken(byte[] data, Camera camera) { 
     imagebytearray=data;    
     Toast.makeText(getApplicationContext(), "Image Captured",5).show(); 
    } 

} 
+0

注的任何消息在logcat的? – CommonsWare

+0

你確定'onClick()'是否曾經被調用? –

回答

0

嚴格帶下的http://developer.android.com/training/camera/photobasics.html

請求允許使用相機

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

拍攝相片

private void dispatchTakePictureIntent(int actionCode) { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(takePictureIntent, actionCode); 
} 

保存照片

storageDir = new File(
    Environment.getExternalStoragePublicDirectory(
     Environment.DIRECTORY_PICTURES 
    ), 
    getAlbumName() 
); 

設置文件名

private File createImageFile() throws IOException { 
    // Create an image file name 
    String timeStamp = 
     new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_"; 
    File image = File.createTempFile(
     imageFileName, 
     JPEG_FILE_SUFFIX, 
     getAlbumDir() 
    ); 
    mCurrentPhotoPath = image.getAbsolutePath(); 
    return image; 
} 

通過意圖傳遞位置,相機應用

File f = createImageFile(); 
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
+0

OP直接使用'Camera'類,而不是'Intent' – CommonsWare

相關問題