2010-04-19 88 views
1

我的應用程序應該包含相機預覽表面。如果有另一種方式來讓相機預覽自己行爲正確,相機通過AndroidMainfest.xml我可以在景觀攝像機SurfaceView的頂部添加肖像佈局嗎?

<application android:icon="@drawable/icon" 
    android:label="Camera"> 

    <uses-library android:name="com.google.android.maps" /> 
    <uses-feature android:name="android.hardware.camera" /> 
    <uses-feature android:name="android.hardware.camera.autofocus" /> 

    <activity android:name=".CameraPreview" 
      android:label="Camera" 
      android:screenOrientation="landscape"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 

固定爲橫向視圖,請讓我知道。

現在我需要一個覆蓋,包含一堆按鈕。由於可用性,用戶界面應設置爲縱向視圖(或更好的方向感知)。

有沒有一種方法在縱向方向上具有透明佈局(對於按鈕和其他GUI元素)?

我試圖通過擴展RelativeLayout來編寫一個特殊的旋轉佈局,但onDraw方法在任何時候都不會被調用。

public class RotatedOverlay extends RelativeLayout { 


private static final String TAG = "RotatedOverlay"; 


public RotatedOverlay(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    canvas.rotate(90); 
    super.onDraw(canvas); 
} 

我對Android plattform編程頗爲陌生。當然,我對編程技巧和解決方法還不太瞭解。過去兩週我做了很多研究(甚至研究了本地Camera實現),但到目前爲止找不到一個好的解決方案。

也許它適用於兩個獨立的活動,但我不認爲,這是正確的解決方案。

回答

0

您需要重寫onDispatchDraw以旋轉ViewGroup的子項,但是隨後會遇到其他問題(請參閱my question