Galaxy S8S8+分别搭载“5.8”与“6.2”大屏,高达84%的屏幕占比为Galaxy S8S8+在游戏娱乐、观看视频时带来深度沉浸式视觉体验。但是与此同时S8却有着一个奇葩的屏幕比例:18.59,屏幕分辨率:2960×1440。通常我们在开发过程中android的标准设计图为1920×1080ios1334×750,默认采用169的比例来设计效果图。android机型众多,分辨率千奇百怪,这回三星又来添乱了,实际开发过程中还真遇到了三星S8的适配问题。

如果不去做适配的话,屏幕的两端就会留有黑边,相当讨厌


其实解决APP显示问题,除了第三方应用自行适配S8之外,S8自己也可以进行调节,S8有一个功能叫做“全屏应用程序”;通过设置“全屏应用程序”既节省了用户等待应用适配的过程,也大大增加了用户体验。


下面我们以开发者的身份去分析下这个问题,究其根本这个适配不过是个显示的问题,我们只需要让APP充满全屏就可以,所以我做了如下尝试:

1:给Activity设置各种noTitlebarFullScreen,不起作用;

2:替换各种style样式,不起作用;

3:修改targetSdkVersion compileSdkVersion为高版本,依然不起作用。


通过观察发现,凡是完美适配了18.59屏幕的App,在系统中已经默认是全屏应用程序了,选择框灰掉无法点击。


所以判断系统应该是通过检测某个属性或者权限来区分当前App是否做好了适配。最后我们找到了"android.max_aspect"这个属性。


开发者只需在AppAndroidManifest.xml文件 中添加如下代码:



对只要这一行代码就搞定三星S8的适配,所以前面都是废话,你要的代码就这一行,快快粘贴复制到你的代码中吧。



Android 标准接口中,支持应用声明其支持的最大屏幕高宽比(maximum aspect ratio)。具体声明如下,其中的 ratio_float 被定义为是高除以宽,以16:9为例,ratio_float = 16/9 = 1.778 (18.5:9则为2.056)。



若开发者没有声明该属性,ratio_float 的默认值为1.86,小于2.056,因此这类应用在三星S8上,默认不会全屏显示,屏幕两边会留黑。



更多相关文章

  1. listview 分析
  2. android 你或许不知道的屏幕适配
  3. android 之 长度单位
  4. Android配置build.gradle的buildTypes动态自动维护debug和releas
  5. 谷歌Android与Chrome合一你怎么看 搭载Android(安卓)L谷歌Nexus
  6. Android屏幕的大小、密度以及字符缩放比例——DisplayMetrics类
  7. Android(安卓)禁止系统休眠,使屏幕不变暗
  8. Android开发周报:Google收购Android十周年、Android最新技术解析
  9. Android(安卓)禁止屏幕旋转

随机推荐

  1. android RecyclerView 中添加 FooterView
  2. adb通过wifi连接 milestone
  3. 我的第一个Android程序,BMI计算器,分享一下
  4. android:The application has stopped une
  5. Android之FastJSon基本使用,属性首字母大
  6. [转]android adapter 深刻分析
  7. Android(安卓)开发错误集锦
  8. 使用Canvas的drawTextOnPath方法实现沿着
  9. Android(安卓)Studio第一次安装遇见的问
  10. Android(安卓)SurfaceFlinger 学习之路(