ボタンを押して撮影してSDカードに保存するだけのソース。
package com.android_test; import java.io.FileOutputStream; import android.app.Activity; import android.hardware.Camera; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; public class AndroidTestActivity extends Activity { private String filePath; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // カメラの総数 int numberOfCameras = Camera.getNumberOfCameras(); Log.d("個数", String.valueOf(numberOfCameras)); //保存フォルダの取得 filePath = Environment.getExternalStorageDirectory().getPath();// /mnt/sdcard Log.d("SDカードのパス", filePath ); } //ボタンが押された時の処理 public void SetButtonOnClick(View v) { Camera camera = Camera.open(1);//カメラを開く //カメラ画像を取得 camera.takePicture(null, null, mPictureListener); } // JPEGイメージ生成後に呼ばれるコールバック private Camera.PictureCallback mPictureListener = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { // SDカードにJPEGデータを保存する if (data != null) { FileOutputStream myFOS = null; try { myFOS = new FileOutputStream( filePath + "/DCIM/Camera/camera_test.jpg"); myFOS.write(data); myFOS.close(); } catch (Exception e) { e.printStackTrace(); } camera.release(); } } }; }
マニフェストファイルに追加
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
撮影した画像 640x480
USBカメラを接続して撮影した画像
Camera.open(0);
0 件のコメント:
コメントを投稿