2010-04-19 51 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