适配

作者: a7687d04ea64 | 来源:发表于2021-09-09 17:48 被阅读0次

                                                    

屏幕适配:

像素: px 

像素密度: dpi(px/inch)

屏幕密度: 像素密度/160

在像素密度为 160dpi 时, 1dp=1px ,因此,像素密度为320dpi,即屏幕密度为2时,1dp=2px

三星Note8-N9500:

屏幕宽度(像素):1440

屏幕高度(像素):2792

屏幕密度(0.75 / 1.0 / 1.5):3.5

像素密度dpi(120 / 160 / 240):560

屏幕宽度(dp):411

屏幕高度(dp):797

华为 GRA-TL00:

屏幕宽度(像素):1080

屏幕高度(像素):1794

屏幕密度(0.75 / 1.0 / 1.5):3.0

像素密度dpi(120 / 160 / 240):480

屏幕宽度(dp):360

屏幕高度(dp):598

手机品牌: Pandora

手机型号: A1

SDK版本: 23

系统版本: 6.0.1

屏幕宽度(像素): 1334px

屏幕高度(像素): 750px

屏幕宽度(DP): 667.0dp

屏幕高度(DP): 375.0dp

屏幕密度(0.75 / 1.0 / 1.5): 2.0

像素密度DPI(120 / 160 / 240): 320

适配:

mipmap-ldpi 120dpi 0.75

mipmap-mdpi 160dpi 1

mipmap-hdpi 240dpi 1.5

mipmap-xhdpi 320dpi 2

mipmap-xxhdpi 480dpi 3

mipmap-xxxhdpi 640dpi 4

在资源文件中,实际显示宽高计算: (图片像素/资源文件dpi)*手机dpi

例如: 一张高为550px的图片放在资源文件夹mipmap-xxhdpi中,则屏幕密度为560dpi的手机中显示的高度为 (550/480)*560 = 642px

获取屏幕参数:

private void getDisplay() {

        DisplayMetrics metric = new DisplayMetrics();

        getWindowManager().getDefaultDisplay().getRealMetrics(metric);

        // 屏幕宽度(像素)

        int width = metric.widthPixels;

        // 屏幕高度(像素)

        int height = metric.heightPixels;

        // 屏幕密度(1.0 / 1.5 / 2.0)

        float density = metric.density;

        // 屏幕密度DPI(160 / 240 / 320)

        int densityDpi = metric.densityDpi;

        String info = "手机" +

                "\n手机品牌:\t\t\t\t\t\t" + android.os.Build.BRAND +

                "\n手机型号:\t\t\t\t\t\t" + android.os.Build.MODEL +

                "\nSDK版本:\t\t\t\t\t\t" + Build.VERSION.SDK_INT +

                "\n系统版本:\t\t\t\t\t\t" + android.os.Build.VERSION.RELEASE +

                "\n屏幕宽度(像素):\t\t\t\t\t" + width +

                "\n屏幕高度(像素):\t\t\t\t\t" + height +

                "\n屏幕宽度(DP):\t\t\t\t\t" + width / density + "dp" +

                "\n屏幕高度(DP):\t\t\t\t\t" + height / density + "dp" +

                "\n屏幕密度(0.75 / 1.0 / 1.5):\t\t" + density +

                "\n屏幕密度DPI(120 / 160 / 240):\t" + densityDpi +

                "\n10dp = " + getResources().getDimension(R.dimen.dp_10) + "px" + " = " + getResources().getDimension(R.dimen.dp_10) / density + "dp" +

                "\n20dp = " + getResources().getDimension(R.dimen.dp_20) + "px" + " = " + getResources().getDimension(R.dimen.dp_20) / density + "dp" +

                "\n100dp = " + getResources().getDimension(R.dimen.dp_100) + "px" + " = " + getResources().getDimension(R.dimen.dp_100) / density + "dp";

        Log.d("System INFO", info);

    }

相关文章

  • 适配iOS11,适配iPhoneX,适配安全区的几个文章和宏

    适配iOS11,适配iPhoneX,适配安全区的几个文章和宏 适配iOS11,适配iPhoneX,适配安全区的几个...

  • App适配

    布局适配 字体适配 软键盘适配

  • 版本适配

    屏幕适配 代码适配 Masonry UIView+AutoLayout 可视化适配 autoLayout 系统适配...

  • Android屏幕适配

    px适配; 百分比适配; 修改dp适配; 屏幕适配 布局适配使用wrap_content,match_parent...

  • 屏幕适配

    适配 什么是适配?适应、兼容各种不同的情况 iOS开发中的适配?系统适配针对不同版本的操作系统进行适配屏幕适配针对...

  • iOS 适配器模式

    适配器模式创建适配协议,创建抽象适配器类,创建类适配器/对象适配器。 应用,适用场景电源适配器,普通充电器(类适配...

  • iPhone X 适配 ( iOS 11适配 ) 打理刘海

    iPhone X 适配 ( iOS 11适配 ) 打理刘海 iPhone X 适配 ( iOS 11适配 ) 打理刘海

  • iOS设计模式 (五) 适配器模式

    适配器模式 iOS中的适配器模式,主要由目标协议,适配者,适配器三部分组成. 适配器模式分类 类适配器: 适配器是...

  • 设计模式-适配器

    适配器模式,目的是为了适配补偿,对于适配器模式,我们要学习的两种方式是类适配器和对象适配器。 类适配器 类适配器是...

  • iOS13适配更新总结

    前言: iOS13的API的变动和适配问题,我从新特性适配、API 适配、方法弃用、工程适配、SDK 适配、其他问...

网友评论

      本文标题:适配

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