カメラの手ぶれ補正機能を使う


Android4.0.3(APIレベル15)から手ぶれ補正機能が追加されました。手ぶれ補正機能の設定をONにするのみで利用出来、自作のアプリケーションからも簡単に使う事ができます。

※手ぶれ補正はプレビューと動画撮影時に有効になります。静止画撮影には対応していません。

今回はこの手ぶれ補正機能の使い方を説明します。

それでは続きへどうぞ。

手ぶれ補正機能に関するメソッド

手ぶれ補正は他のカメラの設定と同様にCamera.Parametersクラスのメソッドを使って有効にします。

[table “235” not found /]

端末のカメラを使ってプレビューを表示する方法は以下の記事が参考になります。

手順は以下の通りです。

  1. 端末が手ぶれ補正機能に対応しているかどうかを確認する:4.0.3以降の端末であってもハードウェア的に対応していない端末もあります。
  2. 手ぶれ補正機能を有効にする

手ぶれ補正機能に対応しているか確認する

確認するにはCamera.ParametersクラスのisVideoStabilizationSupportedメソッドを利用します。対応していればtrueが返ってきて、非対応であればfalseが返ってきます。

boolean isSupported = parameters.isVideoStabilizationSupported();

手ぶれ補正機能を有効にする

isVideoStabilizationSupportedメソッドで手ぶれ補正機能に対応していることが確認できれば、同じくCamera.ParametersクラスのsetVideoStabilizationメソッドで手ぶれ補正機能を有効にします。

setVideoStabilizationメソッドの引数にtrueを与えることで有効になります。逆にfalseを与えることで無効になります。有効にする場所はsurfaceChangedメソッドでstartPreviewメソッドを呼び出す前に行います。

■src/MainActivity.java

Camera.Parameters parameters = mCamera.getParameters();
boolean isSupported = parameters.isVideoStabilizationSupported();
if (isSupported) {
    Log.d(TAG, "VideoStabilization is Supported");
    parameters.setVideoStabilization(true);
} else {
    Log.d(TAG, "VideoStabilization is not Supported");
}