1

我的应用程序应该包含一个相机预览表面。相机通过 AndroidMainfest.xml 固定为横向视图

<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 平台编程很陌生。当然,我还不太了解编程技巧和解决方法。在过去的两周里,我做了很多研究(甚至研究了原生的相机实现),但到目前为止还没有找到好的解决方案。

也许它适用于两个单独的活动,但我认为这不是正确的解决方案。

4

1 回答 1

0

您需要覆盖 onDispatchDraw 以旋转 ViewGroup 的子项,但随后您会遇到其他问题(请参阅我的问题

于 2010-08-27T18:01:16.313 回答