Android 禁用HDPI上的横向,但不禁用默认横向
我有一个应用程序,问题是它需要支持平板电脑和手机。不过,在平板电脑上,您可以使用景观而不是portret,因为它足够大,可以显示所有内容。然而在手机上,这会把一切都搞糟,因为屏幕太小了 我想禁用手机而不是平板电脑的横向视图 我知道您可以在manifest.xml文件中定义纵向,但是否可以根据布局xml禁用纵向 例如: -手机使用布局hdpi -平板电脑默认为布局Android 禁用HDPI上的横向,但不禁用默认横向,android,portrait,Android,Portrait,我有一个应用程序,问题是它需要支持平板电脑和手机。不过,在平板电脑上,您可以使用景观而不是portret,因为它足够大,可以显示所有内容。然而在手机上,这会把一切都搞糟,因为屏幕太小了 我想禁用手机而不是平板电脑的横向视图 我知道您可以在manifest.xml文件中定义纵向,但是否可以根据布局xml禁用纵向 例如: -手机使用布局hdpi -平板电脑默认为布局 如果设备使用布局hdpi,则应启用仅纵向,否则它可以进入横向。我通过以下方式完成此操作: 在清单中显示为screenOrientat
如果设备使用布局hdpi,则应启用仅纵向,否则它可以进入横向。我通过以下方式完成此操作:
- 在清单中显示为screenOrientation类型:“@integer/screenOrientation”
- 对于手机(如果您需要),将screenOrientation值设置为“1”
- 对于平板电脑(如果需要横向),请将screenOrientation值设置为“0”
我希望此解决方案能对您有所帮助。对于@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添加到此文件。