Androidプログラマへの道 〜 Moonlight 明日香 〜 - カメラ設定を取得する
カメラのパラメータ設定を取得するには, カメラ(Camera)クラスを利用する.

カメラ設定の一覧取得

  • src/Camera01.java
    • Camera#openメソッドで, カメラをオープンする.
    • Camera#getParametersメソッドで, カメラパラメータを取得する.
    • Parameters#get/getXXXメソッドで, パラメータ値を取得する. 今回は, Parameters#flattenメソッドで, 文字列として一括取得している.
    注) 取得可能なパラメータについては, Camera.Parameters | Android Developersを参照.
    • Camera#releaseメソッドで, カメラをリリースする.
package com.moonlight_aska.android.camera01;

import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.widget.TextView;

public class Camera01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // カメラオープン
    Camera camera = Camera.open();
    // パラメータ取得
    Camera.Parameters params = camera.getParameters();
    String strParams = params.flatten();
    String[] tokens = strParams.split(";");
    strParams = null;
    for(String p : tokens) {
      strParams += p + "\n";
    }
    // パラメータ表示
    TextView text = (TextView)findViewById(R.id.text_id);
    text.setText(strParams);
    // カメラリリース
    camera.release();
  }
}
  • AndroidManifest.xml
    • カメラを使用するには, "android.permission.CAMERA"パーミッションを設定する.
    • "android.hardware.camera"で, カメラ機能を備えたハードに限定する.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.moonlight_aska.android.camera01"
   android:versionCode="1"
   android:versionName="1.0">
  <uses-sdk android:minSdkVersion="8" />
  <uses-permission android:name="android.permission.CAMERA"/>
  <uses-feature android:name="android.hardware.camere"/>

  <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Camera01"
       android:label="@string/app_name">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
</manifest>
  • 動作例
端末:SHARP SH-03C / Android2.2