2013-04-15 222 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