-1
即使設備不支持該功能,我也想使用內置觸摸事件的相機應用程序拍照。如何在相機中使用相機應用程序
我想要實現的是以下。
1)當我打開本機或其他任何相機應用,
2)採取與觸摸事件,而不是相機按鈕(圖片這部分是什麼,我想開發)
下面的代碼我爲此嘗試。
我試圖在相機應用程序 上調用透明活動,當我在該活動上獲得觸摸事件時,我調用了Take_picture()函數。
但Take_picture中的camera.takePicture()函數不起作用。 (實際上它不調用jpegCallback功能)
private void Take_picture(){
camera = Camera.open();
if(camera != null)
{
camera.takePicture(null, null, jpegCallback);
}
}
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
new SaveImageTask().execute(data);
}
};
private class SaveImageTask extends AsyncTask<byte[], Void, Void> {
@Override
protected Void doInBackground(byte[]... data) {
FileOutputStream outStream = null;
System.out.println("66666");
// Write to SD Card
try {
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/camtest");
dir.mkdirs();
String fileName = String.format("%d.jpg", System.currentTimeMillis());
File outFile = new File(dir, fileName);
outStream = new FileOutputStream(outFile);
outStream.write(data[0]);
outStream.flush();
outStream.close();
//Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length + " to " + outFile.getAbsolutePath());
//refreshGallery(outFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
return null;
}
}
我不能讓我瞬間如何控制拍攝照片原生相機應用的任何信息。
請幫忙。
然後,是否有可能獲得打開的相機的實例,而不是camera.open()? – user2688423 2014-09-29 10:52:29
@ user2688423:不,因爲那是在另一個應用程序的過程中,不是你的。 – CommonsWare 2014-09-29 10:57:45