Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 禁用HDPI上的横向,但不禁用默认横向_Android_Portrait - Fatal编程技术网

Android 禁用HDPI上的横向,但不禁用默认横向

Android 禁用HDPI上的横向,但不禁用默认横向,android,portrait,Android,Portrait,我有一个应用程序,问题是它需要支持平板电脑和手机。不过,在平板电脑上,您可以使用景观而不是portret,因为它足够大,可以显示所有内容。然而在手机上,这会把一切都搞糟,因为屏幕太小了 我想禁用手机而不是平板电脑的横向视图 我知道您可以在manifest.xml文件中定义纵向,但是否可以根据布局xml禁用纵向 例如: -手机使用布局hdpi -平板电脑默认为布局 如果设备使用布局hdpi,则应启用仅纵向,否则它可以进入横向。我通过以下方式完成此操作: 在清单中显示为screenOrientat

我有一个应用程序,问题是它需要支持平板电脑和手机。不过,在平板电脑上,您可以使用景观而不是portret,因为它足够大,可以显示所有内容。然而在手机上,这会把一切都搞糟,因为屏幕太小了

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

我知道您可以在manifest.xml文件中定义纵向,但是否可以根据布局xml禁用纵向

例如:

-手机使用布局hdpi -平板电脑默认为布局


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

我通过以下方式完成此操作:

  • 在清单中显示为screenOrientation类型:“@integer/screenOrientation”
  • 对于手机(如果您需要),将screenOrientation值设置为“1”
  • 对于平板电脑(如果需要横向),请将screenOrientation值设置为“0”
这个值来自于,所以如果你想要不同的,请查看它(在这个链接中搜索screenOrientation)


我希望此解决方案能对您有所帮助。

对于@pjanecze给出的答案,另一种方法是在代码中执行此操作:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
我在我的基本活动onCreate方法中调用它。出于某种原因,清单方法对我不起作用

一些用户报告上述代码被忽略时出现问题,但这可以通过首先将请求的方向设置为其他方向来解决:

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

实际上我不会那么做。我试着用我的第一个应用程序做到这一点,但用户不喜欢这样。我收到了很多不好的评论,比如“不旋转”、“需要横向”,等等(也可以想想有物理键盘的手机,在这些键盘上保持横向是非常有意义的)。我做了另一个,然后用更少的按钮,当然不容易处理所有的屏幕:/那么清单怎么知道他在使用手机或平板电脑呢。我无法先为平板电脑构建应用程序,然后再为手机构建应用程序:/It从资源文件中知道。为values xlarge(用于平板电脑的文件夹)和values(用于所有其他设备的文件夹)文件夹添加文件values.xml。然后将0或1添加到此文件。