1

以前にカメラ関連のアプリをたくさん作成しましたが、ユーザーが写真を撮った後、ビューを横向きまたは縦向きにロックしたアクティビティで常に作成されていました。ただし、この新しいアプリの要件では、camera.stopPreview()を呼び出した後、画面に表示された画像を回転できるようにする必要があります。私はこのようにすることを考えました.....

1.)私の写真のコールバックからバイトを保存し、バンドルに入れます

2.)onResumeで、バンドル!= nullかどうかを確認し、そうでない場合はバイト配列を取得します

3.)surfaceViewをframeLayout内に配置したので、surfaceViewを一時的にimageViewに置き換え、bitmapfactory.decodebytearray()を使用してimageviewのビットマップイメージを作成できます。

これで、すべてが正常に機能するようになりましたが、カメラプレビューなどを渡す方法があるので、要件を満たすために余分な長さを費やす必要はありませんか?また、作成して保存する必要のあるビットマップが少ないほど、メモリの面で優れています。そのため、私はすでにそれを実行していません。

4

1 に答える 1

0

私は写真のコールバックでこれを使用するだけになりました

if(getScreenOrientation()==Configuration.ORIENTATION_LANDSCAPE){
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         }else{
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
         }

次に、使用したボタンの1つで

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

すべてを元に戻して、再び回転するようにします

于 2013-01-25T22:23:08.247 に答える