今天其实没有什么想写的代码,不过自己仍然想坚持写一些东西。这次就写写dip与px直接的转换。

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一 样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度 设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动 将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

/**
 * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
 */
public static int dip2px(Context context, float dpValue) {
 final float scale = context.getResources().getDisplayMetrics().density;
 return (int) (dpValue * scale + 0.5f);
}

/**
 * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
 */
public static int px2dip(Context context, float pxValue) {
 final float scale = context.getResources().getDisplayMetrics().density;
 return (int) (pxValue / scale + 0.5f);
}

/**

*
 将px值转换为sp值,保证文字大小不变

*

*
 @param pxValue

*
 @param fontScale

*          
 (DisplayMetrics类中属性scaledDensity)

*
 @return

*/

public

static int px2sp(Context context, float pxValue) {

final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;

return (int)(pxValue / fontScale + 0.5f);

}

/**

*
 将sp值转换为px值,保证文字大小不变

*

*
 @param spValue

*
 @param fontScale

*          
 (DisplayMetrics类中属性scaledDensity)

*
 @return

*/

public static int sp2px(Context context, floatspValue) {

final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;

return (int) (spValue * fontScale + 0.5f);

}

}

这个转换其实就是根据手机的分倍率把dp乘或除,就转换乘px或sp了,使用也很简单。

需要最好使用dip,时候我们可以调用以下的代码进行转换.
int heightPx= DisplayUtil.dip2px(this, 33);
mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = heightPx;

dx转dp就这么简单。



android dip转px相关推荐

  1. Android中关于dip和px以及转换的总结

    我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼.在Android中支持的描述大小区域的类型有以下几种: px(pixels)--像素:不同的设备显示效果相同,一般我 ...

  2. 【Android 屏幕适配】屏幕适配基础概念 ② ( 像素 px 与 密度无关像素 dip | 像素 px 与 密度无关像素 dip 在不同屏幕像素密度 dpi 下的换算关系 )

    文章目录 一.像素 px 与 密度无关像素 dip 二.像素 px 与 密度无关像素 dip 在不同屏幕像素密度 dpi 下的换算关系 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 ...

  3. Android的计量单位px,in,mm,pt,dp,dip,sp

    px   :是屏幕的像素点 in    :英寸 mm :毫米 pt    :磅,1/72 英寸 dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip  :等 ...

  4. 【转】Android中dp,px,sp概念梳理以及如何做到屏幕适配

    2019独角兽企业重金招聘Python工程师标准>>> 首先来看一下他们的基本概念: px   :是屏幕的像素点 dp   :一个基于density的抽象单位,如果一个160dpi的 ...

  5. [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配

    http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI ...

  6. Android---- android计量单位--dip、px、sp之间区别与联系pixs =dips * (densityDpi/160). dips=(pixs*160)/d...

    android计量单位--dip.px.sp之间区别与联系pixs =dips * (densityDpi/160). dips=(pixs*160)/d [复制链接]     fanly 252 主 ...

  7. android dp转px的公式_dp和px换算公式

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

  8. 安卓桌布显示的dip和px

    安卓程序设计界面显示设置图像大小,在layout.xml里面有dip和px选项,dip为 什么 暂时还不知道,或许是设计桌布的设定像素比率,px为像素值: 比如我的手机是 Lenovo K920,屏幕 ...

  9. 屏幕适配中的dip与px之间的转化

    在项目中,为了适配所有的屏幕,有时候会使用到dip和px之间的转换 dip 称为设备独立像素,在不同的移动设备上,有着不同的显示效果,与设备的显示器的单位像素点有关. px则是真是的物理像素,1px就 ...

最新文章

  1. “是男人就下一百层”h5游戏全网最详细教学、全代码,js操作
  2. Android投票列表设计,AndroidCustomView一个简单的投票排名对比图
  3. hdu 1251+hdu 1671(字典树)
  4. UITextView左边距为0
  5. Android 中的 Service 全面总结
  6. mysql5.6的安装步骤_MySQL5.6安装步骤
  7. OpenGL shader uniform的实例
  8. python函数编程实战_别找了,这是 Pandas 最详细教程了
  9. SAP UI5 应用开发教程之十四 - 嵌入视图的使用方式
  10. dorado 刷新_dorado7常用内容
  11. java epub 删除一页_java如何实现批量删除pdf指定的页数
  12. mysql decimal_MySQL系列之数据类型及约束
  13. 低代码平台对程序员产生的内卷,零代码、低代码系列之一「对于零代、低代码平台的思考」
  14. markdown下载
  15. 面试拆解:系统上线后Cpu使用率飙升如何排查?
  16. html图片自然,PS制作自然逼真物体倒影图片效果
  17. HTML5在vivo手机适配问题
  18. 20届icoding 实验1
  19. 多卡汇聚路由器、多网融合、弱网通信
  20. 左侧颜面部起疱,疼痛剧烈2天-牙博士

热门文章

  1. simple2.py
  2. 添加gitlab远程账号 使用注意事项
  3. win10输入法简体繁体切换
  4. No DataType in DataTemplate in Windows Phone(—)
  5. MOSS2007 无法上传超过30M或者50M的大文件解决办法 (转)
  6. 信息发布webpart——网页编辑器应用攻略
  7. 20181213_任务(3D奖品设计+30天单词练习)
  8. 虚拟机安装以及PCL的配置(1)
  9. hibernate关系映射(一对一)
  10. Linux 刻录光盘