4

携帯電話のカメラを使用する Android 1.6 アプリを作成しています。

このアプリの解像度に依存しないようにするには、SurfaceLayout でカメラをプレビューするための互換性のある縦横比を設定する必要があります。1.6 SDK では、カメラ プレビューでサポートされているサイズを取得する方法がありません。4:3 または 3:2 のアスペクト比を使用してもエラーが発生しませんか?

一方、すべての解像度でこの (不明な) アスペクト比でこの Surfacelayout を表す xml レイアウトを作成する方法が必要です。実行時に SurfaceLayout のサイズを変更することはできないと思います。「dp」単位でできますか?もう1つの方法は、このレイアウトをプログラムで作成することですか?

黒いバー (ビネット) や固定ボタン バーなど、そのようなものを作成するためのいくつかのトリックを備えた Vignette や Android カメラ アプリケーションのようなアプリがありますが、どのような種類の解像度でもそれを行う方法がわかりません。

何か案は?

ありがとう!

4

1 に答える 1

6

1.6 SDK では、カメラ プレビューでサポートされているサイズを取得する方法がありません。

がある。preview-size-valuesカメラパラメータの解析でそれらを取得できます。

String supportedSizesString = parameters.get("preview-size-values");
List<Size> supportedSizes = new ArrayList<Size>();
if (supportedSizesString != null && supportedSizesString.length() > 0) {
    StringSplitter ss = new TextUtils.SimpleStringSplitter(',');
    ss.setString(supportedSizesString);
    for (String supportedSize : ss) {
        String[] dimentions = supportedSize.split("x");
        if (dimentions.length > 1) {
            Size size = mCamera.new Size(Integer.parseInt(dimentions[0]),
            Integer.parseInt(dimentions[1]));
            supportedSizes.add(size);
        }
    }
}
于 2011-01-12T14:43:20.620 に答える