1
私は、フロントとバックカメラの両方を使用してプログラム的に画像をキャプチャし、内部メモリのフォルダに保存するAndroidアプリケーションに取り組んでいます。 イメージが保存されると、アプリケーションはフォルダの内容を電子メールで送信します。イメージが完全にキャプチャされるまでアプリケーションを待つ方法、それ以外の場合は空白の電子メールが送信されますか?カメラがアンドロイドで画像をキャプチャするまで待つ方法は?
class MainActivity{
//other codes
public void buttonClick(View v) {
CameraService.startCamera(0, true);
sendEmail();
}
public void sendEmail()
{
//get contents from the folder and send the contents using java mail api
}
}
これは、フロントカメラとバックカメラの両方を使用して画像をキャプチャするクラスです。
class CamearService
{
public static void startCamera(int cameraID,final boolean isFirstTime) {
mCamera = Camera.open(cameraID);
try {
mCamera.setPreviewTexture(new SurfaceTexture(10));
} catch (IOException e1) {
}
Parameters params = mCamera.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
params.setPictureFormat(ImageFormat.JPEG);
params.setJpegQuality(100);
mCamera.setParameters(params);
mCamera.startPreview();
mCamera.takePicture(null, null, null, new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.i("hello", "picture-taken");
if (data != null) {
mCamera.stopPreview();
mCamera.release();
try {
BitmapFactory.Options opts = new BitmapFactory.Options();
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
data.length, opts);
storeImage(bitmap); //function to store image to local folder
if(isFirstTime)
{
//Capture using front camera
CameraService.startCamera(1, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
}
iはボタンstartCameraをクリック
()関数が実行され、第2の画像をキャプチャする前のsendEmail()関数が実行されます。その結果、1つの画像しか電子メールで送信されません。
はどのように正確に画像を撮影していますか? – yosriz
'画像が保存されると、アプリケーションはフォルダの内容を電子メールで送信します。 '。まあまあだ!それは間違って行くことはできません。 – greenapps
コードを記入してください。 –