Android单位转换 (pxdpsp之间的转换工具类)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android单位转换 (pxdpsp之间的转换工具类)相关的知识,希望对你有一定的参考价值。

   在Android开发中,涉及到屏幕视频问题的时候,px、dp、sp之间的转换比较重要的一部分,所以杨哥整理了一个工具类给大伙用。

package com.zw.express.tool;


import android.content.Context;
import android.util.DisplayMetrics;
/**
 * ydc
 * @author Administrator
 *
 */
public class DensityUtils {
 /**
     * 根据手机的分辨率从 dip 的单位 转成为 px(像素)
     */
public static int dp2px(Context context, float dpValue) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
final float scale = dm.density;
return (int) (dpValue * scale + 0.5f);
}


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


 /**
     * 将px值转换为sp值,保证文字大小不变
     */
public static int px2sp(Context context, float pxValue) { 
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
return (int) (pxValue / fontScale + 0.5f); 



/**
     * 将sp值转换为px值,保证文字大小不变
     */
public static int sp2px(Context context, float spValue) { 
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
return (int) (spValue * fontScale + 0.5f); 

}
















































以上是关于Android单位转换 (pxdpsp之间的转换工具类)的主要内容,如果未能解决你的问题,请参考以下文章

Android 中的长度单位pxdpsp

android开发中用到的pxdpsp

Android 单位dp和px之间相互转换

Android开发系列之屏幕密度和单位转换

实现 IMultiValueConverter 以在单位之间进行转换

计算机中用的各种单位之间是怎么转换的