码迷,mamicode.com
首页 > 其他好文 > 详细

DensityUtil 分辨率工具类

时间:2015-12-07 18:17:23      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

  1. package extra.util;
  2. import android.content.Context;
  3. import android.util.DisplayMetrics;
  4. import android.util.TypedValue;
  5. public class DensityUtil {
  6. /**
  7. * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
  8. */
  9. public static int dip2px(Context context, float dpValue) {
  10. final float scale = context.getResources().getDisplayMetrics().density;
  11. return (int) (dpValue * scale + 0.5f);
  12. }
  13. /**
  14. * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
  15. */
  16. public static int px2dip(Context context, float pxValue) {
  17. final float scale = context.getResources().getDisplayMetrics().density;
  18. return (int) (pxValue / scale + 0.5f);
  19. }
  20. private static float getPixelScaleFactor(Context context) {
  21. DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
  22. return (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT);
  23. }
  24. private DensityUtil()
  25. {
  26. /* cannot be instantiated */
  27. throw new UnsupportedOperationException("cannot be instantiated");
  28. }
  29. /**
  30. * dp转px
  31. *
  32. * @param context
  33. * @param val
  34. * @return
  35. */
  36. public static int dp2px(Context context, float dpVal)
  37. {
  38. return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
  39. dpVal, context.getResources().getDisplayMetrics());
  40. }
  41. /**
  42. * sp转px
  43. *
  44. * @param context
  45. * @param val
  46. * @return
  47. */
  48. public static int sp2px(Context context, float spVal)
  49. {
  50. return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
  51. spVal, context.getResources().getDisplayMetrics());
  52. }
  53. /**
  54. * px转dp
  55. *
  56. * @param context
  57. * @param pxVal
  58. * @return
  59. */
  60. public static float px2dp(Context context, float pxVal)
  61. {
  62. final float scale = context.getResources().getDisplayMetrics().density;
  63. LogUtil.e("density=" + scale);
  64. return (pxVal / scale);
  65. }
  66. /**
  67. * px转sp
  68. *
  69. * @param fontScale
  70. * @param pxVal
  71. * @return
  72. */
  73. public static float px2sp(Context context, float pxVal)
  74. {
  75. return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
  76. }
  77. }





DensityUtil 分辨率工具类

标签:

原文地址:http://www.cnblogs.com/yutianran/p/5026407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!