1. public class DensityUtil {
  2. private final static String TAG = "DensityUtil";
  3. private static float density = 0f;
  4. private static float defaultDensity = 1.5f;// 高分辨率的手机density普遍接近1.5
  5.  
  6. private DensityUtil() { }
  7.  
  8. public static void setDensity(float density) {
  9. DensityUtil.density = density;
  10. }
  11.  
  12. public static float getDensity(Context context) {
  13. return context.getResources().getDisplayMetrics().density;
  14. }
  15.  
  16. public static int getScreenWidth(Context context){
  17. return context.getResources().getDisplayMetrics().widthPixels;
  18. }
  19. public static int getScreenHeight(Context context){
  20. return context.getResources().getDisplayMetrics().heightPixels;
  21. }
  22. /**
  23. * 根据手机的分辨率 dp 转成px(像素)
  24. */
  25. public static int dip2px(float dpValue) {
  26. int px;
  27. if (density == 0) {
  28. Log.e(TAG,
  29. "density is invalid, you should execute DensityUtil.getDensity(Context context) first");
  30. px = (int) (dpValue * defaultDensity + 0.5f);
  31. } else {
  32. px = (int) (dpValue * density + 0.5f);
  33. }
  34. XLog.i(TAG, "px = " + px);
  35. return px;
  36. }
  37.  
  38. /**
  39. * 根据手机的分辨率px(像素) 转成dp
  40. */
  41. public static int px2dip(float pxValue) {
  42. int dp;
  43. if (density == 0) {
  44. Log.e(TAG,
  45. "density is invalid, you should execute DensityUtil.getDensity(Context context) first");
  46. dp = (int) (pxValue / defaultDensity + 0.5f);
  47. } else {
  48. dp = (int) (pxValue / density + 0.5f);
  49. }
  50. XLog.i(TAG, "dp = " + dp);
  51. return dp;
  52. }
  53.  
  54. }

dp px 转换工具的更多相关文章

  1. android屏幕密度规律及dp px转换

    px和dp(sp) 之间转化公式: 1  乘以(dp转px)或者除以(px转dp) scal缩放因子,在上浮0.5f /** * 密度转换像素 * */ public static int dip2p ...

  2. dp,px转换

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

  3. android px,dp,sp大小转换工具

    package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类<br/> ...

  4. DensityUtil【尺寸转换工具类(px、dp互相转换)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 用于项目中dp.px.sp之间的转换以及指定缩放值下的转换. 效果图 暂不需要 代码分析 常用的方法是px2dip.dip2px: ...

  5. (转)Android中px与dip,sp与dip等的转换工具类

    功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方法中的参数请参考http://www.cnblogs.co ...

  6. 我的Android进阶之旅------>Android关于dp(dip)、sp转px的工具类

    下面是一个工具类,提供了dp.sp.px之间相互转化的方法. import android.content.Context; /** * dp.sp 转换为 px 的工具类<br> * & ...

  7. 在线px转换rem工具

    今天推荐一个在线工具,在线px转换rem工具 只要输入1rem = 多少px即可在线转换 和cssrem插件差不多的功能   rem在线转换工具: http://www.ofmonkey.com/fr ...

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

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

  9. PixelUtils:像素转换工具

    /** 像素转换工具 */ public class PixelUtils { /** * The context. */ private static Context mContext = Cust ...

随机推荐

  1. echarts引入及应用

    1.在官网上下载echarts并引入项目中 <script src="js/echarts.js"></script> 2.给一个DOM作为图表展示的容器, ...

  2. avalon全选效果分析讲解

    全选功能就是 1.点击全选控制循环元素是否选中.(点击全选,下面的所有元素选中,再次点击 所有元素取消选中.) 2.点击循环元素控制全选.(如果当前元素是未选中状态则全选不选中,如果当前元素是选中状态 ...

  3. 第8章 BOM

    8.1 window对象 window有双重的角色,既可以通过JavaScript访问浏览器窗口的接口,又是ECMAScript规定的Global对象. 全局作用域中声明的变量.函数都会变成windo ...

  4. sqlserver存取过程游标

    ALTER proc [dbo].[common_proc_temp2] as begin declare @id varchar(50); declare @cbcontractid varchar ...

  5. 模板:正则替换之后生成标准的php文件 然后include该文件

    http://www.360doc.com/content/12/0808/16/10388890_229034643.shtml

  6. linux whoami命令

    whoami显示的是当前"操作用户"的用户名.

  7. maven项目报:An error occurred while filtering resources

    maven项目在problem中报: An error occurred while filtering resources   解决方法: 右键项目-maven-update project.. 

  8. CentOS 6.5 下离线安装nginx

    一.由于linux下安装nginx 需要  zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc这些依赖,而这些依赖打安装包在我们系统的光 ...

  9. 什么是遗传方差(Genetic variance)、加性遗传方差(Additive genetic variance)、显性遗传方差(Dominance genetic variance)、上位遗传方差(Epistatic genetic variance)

    遗传方差:遗传方差又称表型方差(phenotypic variance),通常结合基因型方差(genotype variance)和环境方差(environmental variance).遗传方差主 ...

  10. [题解]vijos 运输计划

    Description 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球.小 P 掌管一家 ...