px和dp(sp) 之间转化公式:

1  乘以(dp转px)或者除以(px转dp) scal缩放因子,在上浮0.5f

  • /**
  • * 密度转换像素
  • * */
  • public static int dip2px(float dipValue) {
  • return (int) (dipValue * scale + 0.5f);
  • }
  • /**
  • * 像素转换密度
  • * */
  • public int px2dip(float pxValue) {
  • return (int) (pxValue / scale + 0.5f);
  • }

2  而因子是根据系统的屏幕密度density(每英寸多少显示点)  /160 (默认加载mdpi的标准160ppi  1px(1倍的图))

     3  屏幕密度density:::

  • DisplayMetrics metric = new DisplayMetrics();
  • getWindowManager().getDefaultDisplay().getMetrics(metric);
  • 或者
  • DisplayMetrics metric = context.getApplicationContext().getResources().getDisplayMetrics();
  • int width = metric.widthPixels; // 屏幕宽度(像素)
  • int height = metric.heightPixels; // 屏幕高度(像素)
  • float density = metric.density; // 屏幕密度倍数(0.75(ldpi) / 1.0(mdpi) / 1.5(hdpi) /2(xhdpi) /3(xxhdpi) /4(xxxhdpi) )
  • int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240/ 320/ 480/ 640)

  

     4  还可以这样获取手机屏幕密度:::

1 手机 2垂直边 分辨率  平方和 结果 开平方 得到 斜角线的长度

2 除以 屏幕尺寸(比如 6寸),就是dpi密度

-----例如:   (2160*2160+1080*1080) 开平方后 / 6寸 = 402(华为mete10 pro)

5  scal因子 = displayMetrics实例 获取到densityDpi(120 160 240 320 480 640) /160 (mdpi的标准160ppi)):

6  Mdpi 160 是1倍 1px=1dp; hdip 240 是mdpi的 1.5倍 1dp=1.5px;  xhdpi 320 是mdpi的2倍 ;

xxhdpi 480 是mdpi的3倍;xxxhdpi 640 是mdpi的4倍。。。

7    不能根据分辨率来适配,根据密度(dpi)对应的文件夹来适配;

放到对应的目录下,否则会出现小图高分辨上不清晰

(  高分辨率适配上 图片要大), 大图放低分辨率上被压缩的时候也会消耗内存。

8   对应表:

1  像素密度范围  xhdpi之下的递增80 ; 以上的都是递增 160 ;

2  一般都是16:9 (1280*720p  1920*1080p  2560*1440 2k);

全面屏幕 出现后,开始有了大概2:1 比例的分辨率,  宽都是1080高度不同 (2280*1080 2246*1080 2160*1080)

 
像素密度等级 像素密度范围 分辨率(通常) 像素密度与dp转换关系
ldpi —dpi-120dpi 320*240   1dp = 0.75px
mdpi 120dpi-160dpi 480*320 (Half-size VGA) 1dp = 1px
hdpi 160dpi-240dpi 800*480 (Wide VGA) 1dp = 1.5px
xhdpi 240dpi-320dpi 1280*720 1dp = 2px
xxhdpi 320dpi-480dpi 1920*1080 1dp = 3px
xxxhdpi 480dpi-640dpi 3840*2160 1dp = 4px
 

其他:::

1  android 一般都是以iphone 750为比例来设计。。。一般用2x倍的切图, 因为android的720p和750相差不大。

2  Screen屏幕的高度,包括顶部状态栏 和 底部的操作栏。

3  Windows窗口的高度,只包括app可视区页面高度。

4  类似前端js也是一样: scrollHeight 整个页面的滚动高度;clientHeight 可视区高度.

附: sketch的标注标准

android屏幕密度规律及dp px转换的更多相关文章

  1. Android屏幕密度(Density)和分辨率概念详解

    移动设备有大有小,那么如何适应不同屏幕呢,这给我们编程人员造成了很多困惑.我也是突然想到这些问题,然后去网上搜搜相关东西,整理如下.   首先,对下面这些长度单位必须了解. Android中的长度单位 ...

  2. dp px 转换工具

    public class DensityUtil { private final static String TAG = "DensityUtil"; private static ...

  3. Android 屏幕密度适配

    Android Icon Size and Location for Apps   分辨率 DPI Density scale 1dp对应像素 1dp对应物理尺寸 Location Icon Size ...

  4. dp,px转换

    public static int dip2px(Context context, float dpValue) {        final float scale = context.getRes ...

  5. Android屏幕相关的概念

    1. 屏幕尺寸 实际的物理尺寸,作为屏幕的对角线测量. 为简单起见,安卓所有的实际屏幕尺寸为四个广义的大小:小,正常,大,和特大. 2. 屏幕密度 一个屏幕的物理区域内像素的数量:通常称为DPI(每英 ...

  6. Android度量单位说明(DIP,DP,PX,SP) (转帖)

    (一)概念 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不 ...

  7. Android度量单位说明(DIP,DP,PX,SP)

    本文转载于:http://blog.sina.com.cn/s/blog_6b26569e0100xw6d.html (一)概念 dip: device independent pixels(设备独立 ...

  8. Android中dip, dp, px,pt, sp之间的区别:

    Android中dip.dp.sp.pt和px的区别   1.概述 过去,程序员通常以像素为单位设计计算机用户界面.例如:图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸点数(dpi)更 ...

  9. Android 屏幕适配

    前言 手机的屏幕适配一直是非常麻烦的,现在我就以做笔记的方式来简单梳理下 单位理解 首先让我们先来看看关于手机所用到的单位 真实物理尺寸单位: mm:表示毫米,是屏幕的物理尺寸. in:表示英寸,是屏 ...

随机推荐

  1. 创建Java程序并设置快捷提示

    1.new Java project 创建项目 2.new package 创建包,cn.com.test 3.创建Java文件 4.Java智能提示的设置 window/preference 在Au ...

  2. DDR中的一些知识点说明(ODT,ZQ校准,OCT,TDQS)

    ODT ( On-DieTermination ,片内终结)ODT 也是 DDR2 相对于 DDR1 的关键技术突破,所谓的终结(端接),就是让信号被电路的终端吸 收掉,而不会在电路上形成反射, 造成 ...

  3. create table b1 as select * from b建表锁表测试

    A: create table a1 like a; insert into a1 as select * from a; B: create table b1 as select * from b; ...

  4. Ubuntu 12.10 安装VirtualBox增强功能

    原文链接:http://fengbaoxp.iteye.com/blog/1871825 Ubuntu 12.10 Desktop         首先,通过VirtualBox菜单(设备->安 ...

  5. Vue上传文件:ElementUI中的upload实现

    一.上传文件实现 两种实现方式: 1.直接action <el-upload  .利用before-upload属性 此种方式有个弊端,就是action是必选的参数,那么action如果和pos ...

  6. ckeditor 实现ctrl+v粘贴图片并上传、word粘贴带图片

    公司做的项目需要用到文本上传功能. Chrome+IE默认支持粘贴剪切板中的图片,但是我要粘贴的文章存在word里面,图片多达数十张,我总不能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本 ...

  7. ejb servlet demo

    官方文档: http://docs.oracle.com/javaee/6/tutorial/doc/gijre.html package converter.ejb; import java.mat ...

  8. python输出显示颜色

    显示颜色格式:\033[显示方式;字体色;背景色m......[\033[0m] ------------------------------------------- --------------- ...

  9. Page页面生命周期——微信小程序

    onLoad:function (options) {     //页面初始化     console.log('index Load') }, onShow:function () {     // ...

  10. Python爬虫防封杀方法集合

      Python爬虫防封杀方法集合     mrlevo520 2016.09.01 14:20* 阅读 2263喜欢 38       Python 2.7 IDE Pycharm 5.0.3 前言 ...