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

Posted 麦子TMAC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
 }
}

感觉挺好用的

以上是关于android px,dp,sp大小转换工具的主要内容,如果未能解决你的问题,请参考以下文章

Android中dp,px,sp概念梳理

Android dp和px之间转换 及 获取坐标

java dp,sp转换为px的工具类

Android - 开发页面需了解的dip,sp,px知识,以及它们之间的转换

Android UI里1px等于多少dp?

Android中常见的单位ppi,dp,dpi,sp,px