最終更新:
moonlight_aska 2011年09月18日(日) 17:24:33履歴
インテント(Intent)を利用することで, カメラアプリを呼び出して写真を撮影し, 撮影した画像を取得することができる.


- インテントのインスタンスを生成する.
- Intent#setActionメソッドを使って, アクションに"android.media.action.IMAGE_CAPTURE"を設定する.
- startActivityメソッドを使って, カメラアプリを起動する.
- 写真データを受け取るために, onActivityResultメソッドをオーバーライドする.
- リクエストコードをチェックし, カメラアプリからのイベントか判断する.
- Intent#getExtras()メソッドを使って, ビットマップデータを取得する.
package com.moonlight_aska.android.intentcamera01;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.ImageView;
public class IntentCamera01 extends Activity {
private static final int REQUEST_IMAGE_CAPTURE = 0;
private ImageView imgView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imgView = (ImageView)findViewById(R.id.imgview_id);
// インテントのインスタンス生成
Intent intent = new Intent();
// インテントにアクションをセット
intent.setAction("android.media.action.IMAGE_CAPTURE");
// カメラアプリ起動
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
try {
// 画像データの取得
Bitmap img = (Bitmap)data.getExtras().get("data");
imgView.setImageBitmap(img);
} catch (Exception e) {
}
}
}
}
コメントをかく