【问题标题】:Android screen orientation in layout file布局文件中的Android屏幕方向
【发布时间】:2018-12-20 11:53:31
【问题描述】:

所以我有这样的问题,我想在 AndroidManifest.xml 中将布局默认方向设置为横向,但对于某些布局有不同的方向作为纵向,但是当我添加 android:screenOrientation="portrait" 它不会覆盖清单配置有任何工作大约?主要思想是让平板电脑布局强制横向和手机布局强制纵向。

以下是平板电脑和手机应用程序的示例,请注意平板电脑的布局方向如何强制为横向,并且在设备旋转时它不会旋转。并且对于手机被锁定在纵向并且设备旋转时它不会旋转

【问题讨论】:

  • 是的,我知道,但必须这样做 :) 我更新了我的问题,主要想法是为平板电脑和手机设置不同的方向
  • 用一张图片解释你想要完成的事情会更好地理解你的问题。
  • 您可以在单个活动上使用 android:screenOrientation,而不是在“应用程序”标签中。如果你想同时定义横向和纵向配置,你应该按照文档的这个页面developer.android.com/training/multiscreen/screensizes
  • 我尝试只为布局添加,但它并没有强制它。当我旋转设备时,它会切换方向
  • 首先您确定平板电脑或移动设备中的应用安装。点击此链接:stackoverflow.com/questions/11330363/…,然后粘贴平板电脑的方向代码。 @kosas

标签: android android-layout android-orientation


【解决方案1】:

您可以使用setRequestedOrientation,但横向情况下必须启用手机旋转:

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

考虑到平板电脑大于 6.9" 来计算屏幕尺寸(我在我的应用程序中使用了这个):

 DisplayMetrics dm = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(dm);
 double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
 double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
 double screenInches = Math.sqrt(x + y);

【讨论】:

  • 这个问题是我不知道正在使用哪个设备
  • 因为我只需要横向用于平板电脑,只需要纵向用于手机
  • 我用亲身经历的情况更新了我的答案,我的意思是使用 6.9 来区分平板电脑和手机
  • screenInches
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多