Function
It is usually possible to set the component or text size in the code only with PX, through which we can convert a dip (DP) or SP unit value to a value in PX, guaranteeing the same size. Please refer to http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html for the parameters in the method.
Code
/**
* Android Size unit conversion Tool class
*
* @author Wader
*
*/
public class Displayutil {
/**
* Convert PX value to dip or DP value to ensure size unchanged
*
* @param pxvalue
* @param scale (attribute density in Displaymetrics Class)
* @return
*/
public static int Px2dip (float pxvalue, float scale) {
return (int) (Pxvalue/scale + 0.5f);
}
/**
* Convert dip or DP values to PX values to ensure size is constant
*
* @param dipvalue
* @param scale (attribute density in Displaymetrics Class)
* @return
*/
public static int dip2px (float dipvalue, float scale) {
return (int) (Dipvalue * scale + 0.5f);
}
/**
* Convert PX value to SP value, keep text size unchanged
*
* @param pxvalue
* @param Fontscale (attribute scaleddensity in Displaymetrics Class)
* @return
*/
public static int px2sp (float pxvalue, float fontscale) {
return (int) (Pxvalue/fontscale + 0.5f);
}
/**
* Convert SP value to PX value, keep text size unchanged
*
* @param spvalue
* @param Fontscale (attribute scaleddensity in Displaymetrics Class)
* @return
*/
public static int sp2px (float spvalue, float fontscale) {
return (int) (Spvalue * fontscale + 0.5f);
}
}
Ext.: http://www.cnblogs.com/wader2011/archive/2011/11/28/2266684.html
(RPM) Conversion tool class for PX and DIP,SP and dip in Android