1.屏幕适配知识总结。

一、计算文字宽度的px值。

TextPaint paint = textView.getPaint();

float len = paint.measureText(string);

二、各单位之间的转换。

public class UnitConvertTools {
/**
* 将px值转换为dip或dp值,保证尺寸大小不变
* @param pxValue
* @param scale
*            (DisplayMetrics类中属性density)
* @return
*/
public static int pxToDip(float pxValue, float scale) {
return (int) (pxValue / scale + 0.5f);
}


/**
* 将dip或dp值转换为px值,保证尺寸大小不变
* @param dipValue
* @param scale
*            (DisplayMetrics类中属性density)
* @return
*/
public static int dipToPx(float dipValue, float scale) {
return (int) (dipValue * scale + 0.5f);
}


/**
* 将px值转换为sp值,保证文字大小不变
* @param pxValue
* @param fontScale
*            (DisplayMetrics类中属性scaledDensity)
* @return
*/
public static int pxToSp(float pxValue, float fontScale) {
return (int) (pxValue / fontScale + 0.5f);
}


/**
* 将sp值转换为px值,保证文字大小不变
* @param spValue
* @param fontScale
*            (DisplayMetrics类中属性scaledDensity)
* @return
*/
public static int spToPx(float spValue, float fontScale) {
return (int) (spValue * fontScale + 0.5f);
}
}
以上+0.5f的作用是四舍五入而已。
上述两个比例参数的简单获取:
   density=getApplicationContext().getResources().getDisplayMetrics().density;
  scaledDensity=getApplicationContext().getResources().getDisplayMetrics().scaledDensity;

三、能够在各种设备上显示一致的单位。
sp、dip或者dp。

四、注意TextView.setTextSize和Paint.setTextSize方法传入的参数的单位。

TextView.setTextSize方法传入的参数的单位默认为sp。

TextView.getTextSize方法获得的单位是px。

Paint.setTextSize方法传入的参数的单位为px。

TextView.setTextSize如要改变默认的单位,可调用另外的重载方法setTextSize(int unit,int size)

其中unit可以为以下三种:

TypedValue.COMPLEX_UNIT_PX : Pixels            
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels

五、关于手机的一些屏幕参数的解读。

 1.手机尺寸:比如5英寸的手机,5英寸指的是手机屏幕对角线的长度,单位换算1英寸=2.54厘米,即手机屏幕的对角线长度为5英寸=12.7厘米。

 2.分辨率:比如540*960指的是在屏幕中的总的像素点数。

 3.屏幕材质:主流为TFT与IPS材质,IPS的优点在于可视角度高、响应速度快,所以买手机应选IPS材质较好。

 4.densityDpi:指每英寸中的像素数,安卓中常见的为ldpi,mdpi,hdpi,xhdpi对应值为120,160,240,320。

 5.density:像素比例,表示px与dip(dp)之间的比例,density=densityDpi/160,px与dip之间的转换见二。

 6.scaledDensity类似density。



你可能感兴趣的:(1.屏幕适配知识总结。)