如何在纵向握住横向和横向时显示纵向模式

时间:2014-04-07 13:08:47

标签: android rotation android-orientation

我的目标是制作一个展示传统蒙古语的Android应用。但是,蒙古语是垂直显示的,即使字体像英语一样水平写入。因此,如果我在纵向模式下将其打印在屏幕上,我必须将手机保持在横向模式下才能正确读取(反之亦然)。

通过在AndroidManifest.xml文件中添加如下所示的一行,我已经看到很多关于强制它进入某种模式的问题:

android:screenOrientation="landscape" 
android:screenOrientation="portrait" 

但我想在两个方向之间动态切换,与您通常想要的方向相反。

如果有更好的解决方案,那么我也对此持开放态度。我尝试过设置

之类的东西
android:rotation="90" 

在视图的xml中,但即使是一个视图也没有正确显示,更不用说多个视图对象了。我还看到了使用canvas旋转单个视图的解决方案,但这似乎比仅仅反转方向更复杂,因为一切都需要旋转(包括TextViews,Buttons,ListViews等)

更新:我最终选择了答案,因为我没有得到任何其他答案。我还不确定如何实现它。我现在的计划是允许用户在设置中选择固定方向。

2 个答案:

答案 0 :(得分:0)

要在您的活动电话中更改方向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

捕获方向事件实现onConfigurationChange()并在清单

中为您的配置添加方向

答案 1 :(得分:0)

final int orientation = getResources().getConfiguration().orientation; 

然后,使用此处切换方向:

switch(orientation) {
   case Configuration.ORIENTATION_PORTRAIT:
       setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
       break;
   case Configuration.ORIENTATION_LANDSCAPE:
       setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
       break;                   
}
相关问题