2011-12-12 14 views
1

APIデモで行われているように、私のビューにカメラを実装しました。しかし、それは風景モードでのみ動作します。しかし、それは私がポートレートモードで主に使用したいので、それは私には良いことではありません。ボタンなどは非常に悪く見えます。 CameraPreviewを表示し、すべて一緒にprotraitモードで動作するSurfaceViewを取得する方法はありますか?Androidカメラのボタンとテキストが表示されている

APIデモのコードフォームを使用したため、コードを投稿する必要はありません。

ありがとうございました!

答えて

3

AndroidManifest.xmlファイルで画面の向きを指定しない場合、デフォルトの表示方向は横長です。電話機を回転させるたびにアンドロイドは取得した画像を変更して画像を電話機と揃えるようにします。したがって、2つのオプションがあります:

1.1。 AndroidManifest.xmlファイルで画面の向きを指定し、適切に画面の向きを設定:

のAndroidManifest.xml:

 <activity 
     android:label="@string/app_name" 
     android:name=".CameraPreview" 
     android:screenOrientation="portrait" > 

CameraPreview.java:

 mCamera.setPreviewDisplay(holder); 
     mCamera.setDisplayOrientation(90); 

または

のAndroidManifest.xmlを:

 <activity 
     android:label="@string/app_name" 
     android:name=".CameraPreview" 
     android:screenOrientation="landscape" > 

CameraPreview.java:

 mCamera.setPreviewDisplay(holder); 
     mCamera.setDisplayOrientation(0); 

1.2。

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 

     int rotation = ((Activity)mCtx).getWindowManager().getDefaultDisplay().getRotation(); 
     int degrees = 0; 
     switch (rotation) { 
     case Surface.ROTATION_0: degrees = 90; break; 
     case Surface.ROTATION_90: degrees = 0; break; 
     case Surface.ROTATION_180: degrees = 270; break; 
     case Surface.ROTATION_270: degrees = 180; break; 
     } 

     mCamera.setDisplayOrientation(degrees); 

     Camera.Parameters parameters = mCamera.getParameters(); 
     parameters.setPreviewSize(w, h); 
     mCamera.setParameters(parameters); 
     mCamera.startPreview(); 
    } 

しかし、以来、あなたがまだのボタンで肖像画のレイアウトを設計しているようです:適切に画面が回転するたびに方向を選別AndroidManifest.xmlファイルに画面の向きを指定し、設定しないでください私は最良の選択肢が最初のものだと思う。

これは役に立ちます。

+0

いいえ、いいですね、うまくいきますが、私の問題は、風景とポートレートの向きのサイズが異なることです。風景ではほぼフルスクリーンで、肖像画ではちょうど私は中央のディスプレイの3分の1だと思います。分かりますか? –

+0

私はそれを得ました。私はちょうどGoogleのサンプルコードのchild.layout(...)を変更しなければならなかった。今はかなりうまく動作しますが、Nexusでテストされていることを知っているので、他のデバイスでテストしなければなりません。ありがとう! –

関連する問題