美文网首页
凹形屏适配

凹形屏适配

作者: zonda的地盘 | 来源:发表于2018-05-03 11:12 被阅读0次

最近在适配凹形屏,看到网上已有很多示例代码,但是估计都是出自一个人之手,犯的错误都一样,oppo 凹形屏华为凹形屏 基本都没问题,可以自行 google; 但是很多文章的 vivo凹形屏适配 反射写错了,下面是正确的实现:

  • Kotlin 版本:
    /**
     * 在vivo系统中,判断此设备是否具有凹槽或圆角
     *
     * @param mask 0x00000020表示是否有凹槽; 0x00000008表示是否有圆角
     * @return true表示具备此特征; false表示没有此特性;
     */
    private fun isVivoFeatureSupport(mask: Int, context: Context): Boolean {
        return try {
            val classLoader = context.classLoader
            val ftFeatureClass = classLoader.loadClass("android.util.FtFeature")
            val isFeatureSupportMethod = ftFeatureClass.getMethod("isFeatureSupport", Int::class.java)
            isFeatureSupportMethod.invoke(ftFeatureClass,
                    mask) as Boolean
        } catch (e: Exception) {
            false
        } catch (e: Error) {
            false
        }
    }

  • Java 版本:
   /**
     * 在vivo系统中,判断此设备是否具有凹槽或圆角
     *
     * @param mask 0x00000020表示是否有凹槽; 0x00000008表示是否有圆角
     * @return true表示具备此特征; false表示没有此特性;
     */
    private static boolean isVivoFeatureSupport(int mask, @NonNull Context context) {
        try {
            ClassLoader classLoader = context.getClassLoader();
            @SuppressLint("PrivateApi")
            Class ftFeatureClass = classLoader.loadClass("android.util.FtFeature");
            Method isFeatureSupportMethod = ftFeatureClass.getMethod("isFeatureSupport",
                    int.class);
            boolean isSupport = (boolean) isFeatureSupportMethod.invoke(ftFeatureClass, mask);
            Log.i(LOG_TAG, "isVivoFeatureSupport: " + isSupport);
            return isSupport;
        } catch (Exception | Error e) {
            Log.i(LOG_TAG, "isVivoFeatureSupport Exception: " + e.getMessage());
            return false;
        }
    }

相关文章

  • 凹形屏适配

    最近在适配凹形屏,看到网上已有很多示例代码,但是估计都是出自一个人之手,犯的错误都一样,oppo 凹形屏、华为凹形...

  • Inch适配说明

    请仔细阅读下面文档,用户才能正确了解使用本软件! 【如何适配凹形屏】 根据谷歌兼容性(CTS)标准要求,应用必须按...

  • 安卓适配

    ------刘海屏------屏幕适配 | Android 刘海屏适配总结Android刘海屏适配方案Androi...

  • 关于iOS横竖屏适配

    关于iOS横竖屏适配 关于iOS横竖屏适配

  • iOS开发横竖屏

    关于iOS横竖屏适配 - 简书 iOS横竖屏旋转及其基本适配方法 - 梧雨北辰的博客 - CSDN博客 适配主要需...

  • iOS 关于全面屏适配的方案及UI在不同尺寸下适配方案

    iOS 关于全面屏适配的方案及UI在不同尺寸下适配方案 iOS 关于全面屏适配的方案及UI在不同尺寸下适配方案

  • 技术文章汇总

    横竖屏适配 字体大小适配 Cell 高度自适应

  • iOS开发屏幕适配

    Hello,简书! ## iOS开发屏幕适配 ## 屏幕适配原则大屏手机显示更多的内容 - 并不是大屏手机就根据屏...

  • 刘海屏的适配

    一、适配策略 非全屏状态下不需要适配刘海屏,刘海只占据 toolbar 的位置。 全屏时需要适配刘海屏 二、使用系...

  • 移动端rem适配

    三:多屏适配布局问题 出处:【原创】移动端高清、多屏适配方案 再谈移动端适配和点5像素的由来 使用相对单位:rem...

网友评论

      本文标题:凹形屏适配

      本文链接:https://www.haomeiwen.com/subject/smjkrftx.html