2

我正在构建一个 Android 应用程序,它将在由 Android 驱动的 Mini PC / Cyclone 设备上使用,我的一个要求是强制应用程序切换到纵向。我的第一个想法是以编程方式设置方向,如下所示:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

它适用于平板电脑/手机,但不适用于 Mini / Cyclone PC - 方向仍然是横向。我的下一个想法是使用 RelativeLayout (这是我的根容器)的 setRotation() 方法将其旋转 90 度 - 效果很好,但宽度/高度不适应屏幕的大小。我最终得到的是相对布局旋转了 90 度,但宽度和高度仍然是横向的。我尝试通过设置它的 LayoutParams 来手动设置 RelativeLayout 控件的宽度/高度,虽然它整理了宽度,但高度不正确,因为它只占用了屏幕的一半。这就是我目前正在做的事情:

m_container.setRotation(-90);

RelativeLayout.LayoutParams portraitParams = new RelativeLayout.LayoutParams(Util.getDisplayHeight(MainActivity.this), Util.getDisplayWidth(MainActivity.this));

m_container.setLayoutParams(portraitParams);

getDisplayHeight/Width 方法正确返回屏幕的宽度/高度。

谁能指出我做错了什么/有任何建议如何正确设置我的 RelativeLayout m_container 的宽度/高度?

非常感谢,

托尼

4

1 回答 1

0

您是否尝试在相关活动的 AndroidManifest.xml 中设置 android:screenOrientation="portrait" ?

于 2013-04-15T16:00:19.253 回答