android.hardware.cameraのCamera.Parameters.getSupportedFocusModes()の戻り値はParameters内にString定数として書いてありますが、enumが好みなのでまとめてみました。
/** Camera.Parameters.FOCUS_MODEをまとめたもの<br/>FOCUS_MODE.HOGE.equals()で比較を行うこと<br/> * <pre>{@code * Camera.Parameters params = camera.getParameters(); * List<String> list = params.getSupportedFocusModes(); * for(String v:list){ * if(FOCUS_MODE.AUTO.equals(v)){ * return true; //オートフォーカスサポート! * } * } * }</pre> */ public enum FOCUS_MODE { /** 自動フォーカス<br/>このモードを開始するにはautoFocus()を実行しなければならない */ AUTO(Camera.Parameters.FOCUS_MODE_AUTO), /** 無限遠<br/>このモードではautoFocus()を実行してはいけない! */ INFINITY(Camera.Parameters.FOCUS_MODE_INFINITY), /** マクロ<br/>このモードを開始するにはautoFocus()を実行しなければならない */ MACRO(Camera.Parameters.FOCUS_MODE_MACRO), /** 固定<br/>このモードではautoFocus()を実行してはいけない! */ FIXED(Camera.Parameters.FOCUS_MODE_FIXED), /** 強化被写体深度モード<br/>距離が異なる被写体にピントが合う!?便利な画像処理技術!!<br/>このモードではautoFocus()を実行してはいけない!*/ EDOF(Camera.Parameters.FOCUS_MODE_EDOF), /** 動画撮影時の連続オートフォーカス。<br/>autoFocus()を実行することができる(?)←しないほうがいいっぽい */ CONTINUOUS_VIDEO(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO), /** 写真撮影時の連続オートフォーカス。<br/>autoFocus()を実行することができる(?)←しないほうがいいっぽい<br/>解除する場合、他のフォーカスモードを設定する。 */ CONTINUOUS_PICTURE(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE), ; private final String v; FOCUS_MODE(final String v) { this.v = v; } /** params.getSupportedFocusModes(); の戻り値を突っ込んで自身と比較する */ public boolean equals(String test) { return this.v.equals(test); } }
どない?チェックメソッドのラッパーなんて作ったときに便利と思ってます。きっと。
面白くもあり、面倒でもあり。