Android手机字体自适应屏幕大小

今天程序折腾了大半天关于andorid手机字体自适应的问题,网上也查了很多资料,但是效果都非常不好。
最后好不容易找到一个适配方法,发个帖子分享下经验吧。
首先我们要给先调用TextView 的
setTextSize(int unit, int size) 这个方法.
其中第一个参数可设置如下静态变量:TypedValue.COMPLEX_UNIT_PX : Pixels //像素
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels //sp
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels //dip
我建议传入像素属性,因为根据效果图来做的话一般很容易能截取到像素的

之后我们在size这边传入
   textsize是字体的像素

    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;
        // screenWidth = screenWidth > screenHeight ? screenWidth :
        // screenHeight;
        int rate = (int) (textSize * (float) screenHeight / 1280);
        return rate;
    }
这样字体自适应问题应该能得以解决的。

你可能感兴趣的:(Android手机字体自适应屏幕大小)