我的目标是制作一个展示传统蒙古语的Android应用。但是,蒙古语是垂直显示的,即使字体像英语一样水平写入。因此,如果我在纵向模式下将其打印在屏幕上,我必须将手机保持在横向模式下才能正确读取(反之亦然)。
通过在AndroidManifest.xml文件中添加如下所示的一行,我已经看到很多关于强制它进入某种模式的问题:
android:screenOrientation="landscape"
android:screenOrientation="portrait"
但我想在两个方向之间动态切换,与您通常想要的方向相反。
如果有更好的解决方案,那么我也对此持开放态度。我尝试过设置
之类的东西android:rotation="90"
在视图的xml中,但即使是一个视图也没有正确显示,更不用说多个视图对象了。我还看到了使用canvas旋转单个视图的解决方案,但这似乎比仅仅反转方向更复杂,因为一切都需要旋转(包括TextViews,Buttons,ListViews等)
更新:我最终选择了答案,因为我没有得到任何其他答案。我还不确定如何实现它。我现在的计划是允许用户在设置中选择固定方向。
答案 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;
}