引言:

今年蓝绿厂,可谓是大放异彩啊,首先vivo 发布了全面屏手机NEX,开创了伸缩式前置摄像头的先河,oppo紧跟着发布了find x,可为惊艳全球啊。当然在这之前蓝绿厂也发布了很多的流海异形屏手机,并且官方也给出了一些适配指导,蓝绿厂的适配指导可以说是,没有适配,为何这样说呢,因为它没做啥特殊处理,不像华为和小米一样做了一些特殊处理,所以只要你的app之前做了全面屏兼容处理,和沉浸式模式处理,就不必做其它特殊处理,但是这里,我还是要写一下他们官方提供的一些方法,有可能在做一些特殊处理的情况下会用得到。

1.判断是否刘海屏(凹凸屏)

(1)oppo判断方式

context.getPackageManager().hasSystemFeature(“com.oppo.feature.screen.heteromorphism”);//返回 true为凹形屏 ,可识别OPPO的手机是否为凹形屏。

(2)vivo判断方式

vivo不仅可以判断是否刘海屏,还可以判断时候有圆角,具体见以下代码:

public static final int NOTCH_IN_SCREEN_VOIO_MARK = 0x00000020;//是否有凹槽
public static final int ROUNDED_IN_SCREEN_VOIO_MARK = 0x00000008;//是否有圆角
public static boolean isFeatureSupportInVIVO(Context context,int mark){boolean ret = false;try {ClassLoader cl = context.getClassLoader();Class ftFeature = cl.loadClass("android.util.FtFeature");Method get = ftFeature.getMethod("isFeatureSupport", int.class);ret = (boolean) get.invoke(ftFeature, mark);} catch (ClassNotFoundException e){ Log.e("test", "hasNotchInScreen ClassNotFoundException"); }catch (NoSuchMethodException e){ Log.e("test", "hasNotchInScreen NoSuchMethodException"); }catch (Exception e){ Log.e("test", "hasNotchInScreen Exception"); }finally{ return ret; }
}

2.OPPO获取流海的详细信息

注:这个只有OPPO提供了,对应的方法
凹形屏坐标获取方法:
获取ro.oppo.screen.heteromorphism属性值可获取凹形区域的范围,
例如 [ro.oppo.screen.heteromorphism]: [378,0:702,80],含义如下 :

378:表示竖屏下左上角横坐标

0 :表示竖屏下左上角竖坐标

702:表示竖屏下右下角横坐标

80 :表示竖屏下右下角竖坐标

如下图:

String mProperty = "";
mProperty = SystemProperties.get("ro.oppo.screen.heteromorphism"); /**
*反射系统方法封装类
调用方法:
String mProperty = "";
mProperty = SystemProperties.get("ro.oppo.screen.heteromorphism");
*/
public static class SystemProperties { public static String get(String key) { String value = ""; Class<?> cls = null; try { cls = Class.forName("android.os.SystemProperties"); Method hideMethod = cls.getMethod("get", String.class); Object object = cls.newInstance(); value = (String) hideMethod.invoke(object, key); } catch (ClassNotFoundException e) { Log.e("error", "get error() ", e); } catch (NoSuchMethodException e) { Log.e("error", "get error() ", e); } catch (InstantiationException e) { Log.e("error", "get error() ", e); } catch (IllegalAccessException e) { Log.e("error", "get error() ", e); } catch (IllegalArgumentException e) { Log.e("error", "get error() ", e); } catch (InvocationTargetException e) { Log.e("error", "get error() ", e); } return value; }
}

VIVO和OPPO刘海屏适配方案相关推荐

  1. Android 系统(70)---Android刘海屏适配方案

    Android刘海屏适配方案 什么是刘海屏 随着iPhone X发布,国内一些厂商也推出了刘海屏手机,即将发布的Android p也提供了对刘海屏的支持.so,我们的app也要提前做好适配. 屏幕的正 ...

  2. 简洁明了的刘海屏适配方案

    网上关于刘海屏适配的文章不少,可讲清楚的却没几篇,大多是拷贝文档.长篇大论,甚至热情的贴图告诉你什么是刘海屏,到最后你仍不确定到底是怎样的一个适配方案,才能让你的 app 真正的适配所有的刘海屏机型. ...

  3. android刘海屏适配方案

    刘海屏屏幕适配 注:以下所述"刘海"指延伸至状态栏的屏幕区域. 1. google 官方对Android P刘海屏的适配方案 google官方已经在**Android 9(API ...

  4. Android 8刘海屏特性,Android 8.0刘海屏适配方案 小米和华为根据官方api即可获取隐藏显示转态,oppo和Vivo没有公开API...

    /** * @return 判断Android O的刘海屏 */ private boolean hasNotchInScreen() { boolean ret_all = false; ret_h ...

  5. Android 系统(21)---OPPO 刘海屏适配

    1. 前言 随着硬件的发展,手机的屏幕形态也呈现出多样化.OPPO即将推出一款屏幕高宽比更大.带有刘海的凹形屏幕的手机,其屏幕规格如下: 图左:全屏显示示意图,绿色区域为可显示区域 图右:16:9显示 ...

  6. Android 刘海屏适配方案---NotchTools,适配国内四大厂商(华为、小米、oppo、vivo)刘海屏手机,根据自己业务需求,提供多种接入方式适配刘海屏

    NotchTools 项目地址:zhangzhun132/NotchTools  简介:

  7. Android刘海屏适配全方案(华为、小米、Vivo、Oppo)

    前言 目前市面上的刘海屏和水滴屏手机越来越多了,颜值方面是因人而异,有的人觉得很好看,也有人觉得丑爆了,我个人觉得是还可以.但是作为移动开发者来说,这并不是一件好事,越来越多异形屏手机的出现意味着我们 ...

  8. Android刘海屏适配全方案

    目前市面上的刘海屏和水滴屏手机越来越多了,颜值方面是因人而异,有的人觉得很好看,也有人觉得丑爆了,我个人觉得是还可以.但是作为移动开发者来说,这并不是一件好事,越来越多异形屏手机的出现意味着我们需要投 ...

  9. Android 刘海屏适配全攻略

    这里主要是介绍一下Android P中刘海屏的适配以及Android P之前的适配.为什么要分开呢?因为Android P之前官方还没提供API来进行适配,都是由各家厂商来提供适配方案的. 2.And ...

最新文章

  1. 女士细线毛衣起多少针_潇洒帅气的男童V领开襟毛衣编织,带教程图解
  2. web接口响应时间标准_从零搭建Web应用(二)
  3. 在MFC对话框中快速集成三维控件
  4. 与webview打交道中踩过的那些坑
  5. cad文字递增快捷键_CAD的这些快捷键,好用到暴风哭泣,一秒钟完成3小时操作...
  6. Python format() 函数
  7. 省钱攻略送上!戴尔官网OptiPlex商用台式机到手仅需2279元!速速抢购!
  8. js 分页插件(jQuery)
  9. java replacefirst第n_Java中replace()、replaceFirst()和replaceAll()区别
  10. java容器分数0-9_2018.4.27 java容器
  11. 在一个成熟行业里怎么生存下去?
  12. h3c s5820交换机_简单配置
  13. 计算机RAM ,ROM,NOR FLASH ,NAND FLASH和手机RAM,ROM大家庭血缘关系图
  14. 20.溢出文本用省略号表示
  15. 【C语言】||(或) (且)
  16. 计算机卡驱动版本过低,显卡驱动版本过低怎么办?
  17. Verilog 语法(二)···············简单入门
  18. 【Android】通知准时送达之日历事件
  19. Nexus 7二代 新Nexus 7 中文版ROOT教程
  20. Javaweb开发问题总结

热门文章

  1. 使用电脑模拟微信内置浏览器
  2. 声网 X 小天才 碾压Apple Watch的小天才是如何成为10后儿童手表的霸主?
  3. springIOC和AOP的理解
  4. 我的世界中国版服务器家园系统,《我的世界》中国版家园建造图文教程 家园建造位置推荐...
  5. php 获取浏览器指纹,浏览器指纹保护器,可以修改plugs,语言,mimeTypes
  6. android生命周期方法,Android零基础入门|Activity状态和生命周期方法
  7. 空手撸SOLID架构设计原则,六大原则层层解析,你绝想不到
  8. 卧槽!​我的Python竟然会跳舞!
  9. EMGU.CV入门(二十一、图片的素描、卡通、增强、磨皮)
  10. 图论算法——幻象迷宫(洛谷 P1363)