下面的代码是我进行不同手机测试过的代码,不过该代码只是通过获取当前手机的屏幕大小然后通过px和dip的转换得到实际显示在屏幕的字体大小,但是这种方式将来控件一多使用很麻烦,所以建议自己重新定义你所要显示文字的控件,然后在自定义空间里面使用这段代码,因为这个重定义控件比较简单,我就不写出来了,只把px和dip转换的代码分享出来,有问题,请大家不吝赐教。
public static int getFontSize(Context context, int textSize) {
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
int screenHeight = dm.heightPixels;
int screenWidth = dm.widthPixels;
// 1px = 1/1.5dip //px和dip的转换比例
screenWidth = screenWidth > screenHeight ? screenWidth : screenHeight;
int rate = (int) (textSize * (float) screenHeight / screenWidth);
return (int) Math.round(rate / 1.5);
}