在HDPI上禁用横向,但在默认情况下禁用横向

时间:2012-03-09 20:10:39

标签: android portrait

我有一个应用程序,问题是它需要支持平板电脑和手机。但是在平板电脑上,您可以使用横向而不是portret,因为它足以显示所有内容。但是在手机上这会搞砸一切,因为屏幕太小了。

我想禁用手机的横向视图,而不是平板电脑。

我看到你可以在manifest.xml文件中定义肖像,但是根据布局xml可以禁用它吗?

例如:

-phones使用layout-hdpi -table默认为布局

如果设备使用layout-hdpi,则应仅启用纵向,否则它可以进入横向。

2 个答案:

答案 0 :(得分:1)

我是通过以下方式做到的:

  • 在manifest中作为screenOrientation类型:“@ integer / screenOrientation”
  • for phone(如果你想要肖像)将screenOrientation值设置为“1”
  • for tablet(如果您想要横向)将screenOrientation值设置为“0”

此值来自source sdk,因此如果您需要不同的检查(在此链接中搜索screenOrientation)。

我希望这个解决方案可以帮到你。

答案 1 :(得分:0)

@pjanecze给出的答案的替代方法是在代码中执行此操作:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

我在我的基础Activity onCreate方法中调用它。由于某些原因,清单方法对我不起作用。

有些用户报告上面的代码被忽略了问题,但是可以先修改请求的方向来解决这个问题:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);