您的位置:首页 > 移动开发 > Android开发

android px与dip间的转换

2015-08-04 13:08 525 查看
自己在网上找了几套模版,方法都一样就是参数都一样,因为学习的视频里用了第一个方法及参数 我也就采用了第一种方法,因为怕第二种方法的参数写错!

第一种:

import android.content.Context;

public class DensityUtil {

/**

* 根据手机的分辨率从 dp 的单位 转成为 px(像素)

*/

public static int dip2px(Context context, float dpValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dpValue * scale + 0.5f);

}

/**

* 根据手机的分辨率从 px(像素) 的单位 转成为 dp

*/

public static int px2dip(Context context, float pxValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

}

第二种:

[java] view
plaincopy

/**

* Android大小单位转换工具类

*

* @author wader

*

*/

public class DisplayUtil {

/**

* 将px值转换为dip或dp值,保证尺寸大小不变

*

* @param pxValue

* @param scale(DisplayMetrics类中属性density)

* @return

*/

public static int px2dip(float pxValue, float scale) {

return (int) (pxValue / scale + 0.5f);

}

/**

* 将dip或dp值转换为px值,保证尺寸大小不变

*

* @param dipValue

* @param scale(DisplayMetrics类中属性density)

* @return

*/

public static int dip2px(float dipValue, float scale) {

return (int) (dipValue * scale + 0.5f);

}

/**

* 将px值转换为sp值,保证文字大小不变

*

* @param pxValue

* @param fontScale(DisplayMetrics类中属性scaledDensity)

* @return

*/

public static int px2sp(float pxValue, float fontScale) {

return (int) (pxValue / fontScale + 0.5f);

}

/**

* 将sp值转换为px值,保证文字大小不变

*

* @param spValue

* @param fontScale(DisplayMetrics类中属性scaledDensity)

* @return

*/

public static int sp2px(float spValue, float fontScale) {

return (int) (spValue * fontScale + 0.5f);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: