zoukankan      html  css  js  c++  java
  • android px,dp,sp大小转换工具

    package com.voole.playerlib.util;
    
    import android.content.Context;
    
    /**
     * Android大小单位转换工具类<br/>
     * 
     * float scale = context.getResources().getDisplayMetrics().density;
     */
    public class DisplayUtil {
     /**
      * 将px值转换为dip或dp值,保证尺寸大小不变
      * 
      * @param pxValue
      * @param scale(DisplayMetrics类中属性density)
      * @return
      */
     public static float px2dip(float pxValue, float scale) {
      return  (pxValue / scale + 0.5f);
     }
     
     /**
      * 将px值转换为dip或dp值,保证尺寸大小不变
      * 
      * @param pxValue
      * @param context
      * @return
      */
     public static float px2dip(float pxValue,Context context) {
         float scale = context.getResources().getDisplayMetrics().density;
         return  px2dip( pxValue,  scale);
     }
    
     /**
      * 将dip或dp值转换为px值,保证尺寸大小不变
      * 
      * @param dipValue
      * @param scale(DisplayMetrics类中属性density)
      * @return
      */
     public static float dip2px(float dipValue, float scale) {
      return  (dipValue * scale + 0.5f);
     }
     
     /**
      * 将dip或dp值转换为px值,保证尺寸大小不变
      * 
      * @param dipValue
      * @param context 
      * @return
      */
     public static float dip2px(float dipValue, Context context) {
         float scale = context.getResources().getDisplayMetrics().density;
         return dip2px(dipValue, scale);
     }
    
     /**
      * 将px值转换为sp值,保证文字大小不变
      * 
      * @param pxValue
      * @param fontScale(DisplayMetrics类中属性scaledDensity)
      * @return
      */
     public static float px2sp(float pxValue, float fontScale) {
      return  (pxValue / fontScale + 0.5f);
     }
    
     /**
      * 将sp值转换为px值,保证文字大小不变
      * 
      * @param spValue
      * @param fontScale(DisplayMetrics类中属性scaledDensity)
      * @return
      */
     public static float sp2px(float spValue, float fontScale) {
      return  (spValue * fontScale + 0.5f);
     }
     /**
      * 将sp值转换为px值,保证文字大小不变
      * 
      * @param spValue
      * @param Context
      * @return
      */
     public static float sp2px(float spValue,Context context) {
         float scale = context.getResources().getDisplayMetrics().density;
         return  sp2px( spValue,  scale);
     }
    }

    感觉挺好用的

  • 相关阅读:
    canvas
    学习总结
    后台管理人员项目,添加和查询的思路
    写了项目的一些心得
    学了一丢丢的正则皮毛
    已学的前端存储(学生)
    $.ajax()方法详解即自己遇到问题(新手)
    C#中 decimal 的四舍五入
    自己写一个C#数据结构:用List<T>实现一个简单的Stack
    【转】在CentOS 6.X上部署C# 开发环境
  • 原文地址:https://www.cnblogs.com/yzjT-mac/p/6037519.html
Copyright © 2011-2022 走看看