• Android_基础之分辨率


    常见屏幕分辨率对应尺寸

    标屏 分辨率 比例 宽屏 分辨率 比例
    QCIF 176X144 11:9      
    CIF 352X288 11:9      
    QVGA 320X240 4:3 WQVGA 400X240 5:3
    HVGA 480X320 3:2      
    VGA   640X480  4:3 WVGA  800X480   5:3
    qHD   960X540  16:9      
    HD/720P  1280X720   16:9      
    HD+ 1600X900 16:9      
    FHD/1080P   1920X1080  16:9      
    FHD+  2160X1440   16:9      
     QHD 2560X1440   16:9      

     基本概念

    屏幕大小:屏幕对焦线的长度,单位是英寸(inch)。

    分辨率:上述表格分辨率是屏幕的高和宽的像素点数。如320x240,即高320个像素点 宽240个像素点。

    屏幕密度(实际物理dpi):dpi(dots per inch), 即每英寸上的像素点数目。如屏幕大小是4,分辨率是320x240,则屏幕密度是 (√(3202+2402))/4 = 100。

    系统密度(系统dpi):density, 系统中配置的 默认的固定的密度。

    下面是系统密度的信息,mdpi(160)作为基准:

      ldpi mdpi hdpi xhdpi xxhdpi
    系统密度 120 160 240 320 480
    代表分辨率 240x320 320x480 480x800 720x1280 1080x1920
    基准比例 0.75 1 1.5 2 3

    各个单位的关系:dp,  px, sp

    dp布局中常用的单位,px即像素点,sp常用于字体大小。 

     dp与px

     dp与px转换是基于系统密度的。以mdpi,160为基准的,如1dp在320x480设备上,1dp=1px; 在480x800上1dp=1.5px。

    系统密度在系统中配置的属性是ro.sf.lcd_density,通过下面代码获取

    Log.d( TAG, "density="+getResources().getDisplayMetrics().density
                +";densityDpi="+getResources().getDisplayMetrics().densityDpi);

    执行的手机(ro.sf.lcd_density=240,480x960)得到的结果

    2019-09-29 10:27:52.432 5521-5521/com.flx.testfilestorage D/flx_storage: density=1.5;densityDpi=240
    

    所以 1dp=densitypx 或者 1dp = (densityDpi/160)px

     sp与px:

     Android设计原则 字体尺寸使用sp,非字体尺寸使用dp。 当标准(默认)字体时,1sp=1px。

    所以标准(默认)字体情况下,sp转px和dp一样,1sp=densitypx 或者 1sp = (densityDpi/160)px。

    默认设置中几种字体尺寸可选择的变化值 如下(不同手机厂商可能会修改,所以不同手机可能不同):

    <item>0.85</item>   //小
    <item>1.0</item>   //默认
    <item>1.15</item>   //大
    <item>1.30</item>   //最大
    

      

     

     

     

     

     

  • 相关阅读:
    HDU 5334 Virtual Participation(2015多校第四场)
    HDU 1754 I Hate It(线段树+单点更新)
    HDU 5308 I Wanna Become A 24-Point Master(2015多校第二场)
    linux下socket调试
    linux驱动之hello_world源码与编译
    那些年优秀的HTML5活动页面
    近期Responsive web design项目经验分享-高分辨率图片处理篇
    近期Responsive web design项目经验分享
    var foo= {} ;foo.method() 和 单例模式有什么区别
    Web程序设计
  • 原文地址:https://www.cnblogs.com/fanglongxiang/p/11577849.html
Copyright © 2020-2023  润新知