2013-04-15 181 views
2

我正在构建一个Android应用程序,该应用程序将用于由Android支持的Mini PC/Cyclone设备,我的一个要求是强制应用程序切换为纵向。我首先想到的是通过编程设定的方向,像这样:使用setRotation后设置宽度/高度

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

在平板电脑/手机,但不是在迷你/旋风PC的其中一期工程 - 方向保持景观。我接下来的想法是使用RelativeLayout(它是我的根容器)的setRotation()方法将其旋转90度 - 效果很好,但宽度/高度不适应屏幕的大小。我最终得到的是RelativeLayout旋转了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的宽度/高度?

非常感谢,

托尼

+0

你有没有得到这个决议? – user1105748

回答

0

你尝试设置的android:对相关活动screenOrientation = “肖像” 在AndroidManifest.xml?

+0

感谢您的回应。是的,我试图在清单文件中设置screenOrientation属性,但不幸的是它不起作用。值得注意的是,它在具有加速度计的平板电脑/手持设备上工作,但我的应用程序正在没有加速度计的迷你PC上运行 - 我猜这是问题的一部分。 – tony