【问题标题】:Can I add a portrait layout on top of a landscape Camera SurfaceView?我可以在横向相机 SurfaceView 上添加纵向布局吗?
【发布时间】:2010-04-19 01:12:43
【问题描述】:

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

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

【问题讨论】:

    标签: android camera orientation android-layout


    【解决方案1】:

    您需要重写 onDispatchDraw 来旋转 ViewGroup 的子项,但随后会遇到其他问题(请参阅my question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      相关资源
      最近更新 更多