做过Android开发的童鞋都知道,由于Android手机屏幕的多样性,要想自己写的应用程序能够在不同屏幕的Android手机上运行良好,那就要涉及到屏幕的适配问题了。很多时候,团队中的美工人员给出的设计图往往都是以px为单位的,我们直接以px为单位来使用的时候,往往会出现屏幕适配的问题。Android官方文档中给出控件的长宽最好是使用dip为单位,而接界面文字的大小则使用sp为单位。那么如何将px转化为dip呢。下面,我就给出一个转化的工具类:

具体代码如下:

package cn.lyz.mobilesafe.utils;

import android.content.Context;

/**
* 适配工具类
* @author liuyazhuang
*
*/
public class DensityUtils {
/**
* 将float转化为dip
* @param context
* @param px
* @return
*/
public static int px2dip(Context context, float px){
//获取手机密度
float density = context.getResources().getDisplayMetrics().density;
//计算公式为dip = px * 手机密度
int dip = (int) (px * density);
return dip;
}
}