在工程的res目录下建图中几个文件,在每个文件下建一个dimens.xml文件,在文件里输入内容:
<resources>
<dimen name="textSize_small">15sp</dimen>
<dimen name="textSize_mid">17sp</dimen>
<dimen name="textSize_larg">19sp</dimen>
<dimen name="textSize_xlarg">21sp</dimen>
</resources>
当然每个屏幕下的值不一样就行了,另外还要最好在默认的values文件下的dimens.xml中也输入上面的内容,给它一个默认的比较好。
在做项目时我还发现,图片有低、中、高等,比如同样是480x320屏幕的手机,屏幕的分辨率相应就有低、中、高、超高等,这样得到的图片,然后在图片上写上我们刚才上面的那些文字后,又会发现还是无法真正适配,即图片和文字匹配不上,此时图片小,文字大。对于这种情况我目前没有更好的办法,这时通常我都是喜欢在代码中直接判断控制,下面就是在代码中根据屏幕的大小来设置文字的大小
private int setFontSize(){
int screenWidth = 0;
screenWidth = activity.getWindowManager().getDefaultDisplay().getWidth();
if (screenWidth <= 240) { // 240X320 屏幕
return 9;
}else if (screenWidth <= 320){ // 320X480 屏幕
return 11;
}else if (screenWidth <= 480){ // 480X800 或 480X854 屏幕
return 13;
}else if (screenWidth <= 540){ // 540X960 屏幕
return 15;
}else if(screenWidth <= 800){ // 800X1280 屏幕
return 17;
}else{ // 大于 800X1280
return 17;
}
}