0

Galaxy S2 (android 2.3) と LG P500 (android 2.3) でカメラのファインダーを表示するのに問題があります。SurfaceView にノイズ (干渉) があります。それにもかかわらず、結果の写真にはそのような欠陥はありません。

問題の見方

他のデバイス (Android 4 を搭載した 2.3 および Galaxy S2 を搭載したデバイスを含む) は正常に動作しています。

残念ながら、私はそのようなデバイスを持っていないので、ソース コードを変更するたびにテストすることはできません。たぶん、誰かがすでにこの問題を抱えていましたか?

また、Samsung Remote Test Lab を使用してこのアプリをテストしようとしましたが、残念ながら Android 2.3 を搭載した Galaxy S2 がテーブルに置かれ、彼のカメラは黒くなりました (スプラッシュは何もしません)。この場合、白い帯はありません。

onCreate() :

mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mSurfaceHolder.addCallback(this);
...
mSurfaceView.setLayoutParams(lp);

onResume() :

mCamera = Camera.open();
if (mCamera == null) {
    Toast.makeText(this, R.string.t_no_camera, Toast.LENGTH_SHORT).show();
    finish();
} else {
    mCamera.setDisplayOrientation(90);
    Parameters p = mCamera.getParameters();

    p.setFocusMode(Parameters.FOCUS_MODE_AUTO);
    prepareFlash();
    if (prepareResolution()) {
        Camera.Size size = getBestPreviewSize(mDisplay.getWidth(), mDisplay.getHeight(), p);
        if (size != null) {
            p.setPreviewSize(size.width, size.height);
        }
    }

    mCamera.setParameters(p);

    try {
        mCamera.setPreviewDisplay(mHolder);
    } catch (IOException e) {
        e.printStackTrace();
    }
    mCamera.startPreview();
}

surfaceCreated(SurfaceHolder ホルダー):

try {
    mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
    e.printStackTrace();
}

何か案が?どうなり得るか?どんなヒントにも感謝します。

4

1 に答える 1

1

ポートレート モードでカメラ プレビューを開始します。このようなプレビューのバグは、さまざまなデバイスで発生します。これらのバグは、製造元からのソフトウェア アップグレードで修正される場合もあれば、修正されない場合もあります。場合によっては、クレイジーな回避策で問題が解決することがあります。

安全のために、ランドスケープ モードを使用してください。アプリは、プレビュー アクティビティで垂直 (縦) 方向が許可されないデバイス/ビルド バージョンのブラック リストを保持できる場合があります。

通常、回転したアイコン、ビットマップ、さらにはテキスト ラベルを使用して縦向きをシミュレートできることに注意してください。

于 2013-10-16T15:09:47.803 に答える