Android drawText获取text宽度的三种方式

来源:互联网 发布:上海广通网络 编辑:程序博客网 时间:2024/05/21 19:37
@Override    public void draw(@NonNull Canvas canvas) {        canvas.drawColor(Color.parseColor("#F3F5F9"));        paint.setColor(Color.parseColor("#AEAEAE"));        paint.setAntiAlias(true);        paint.setTextSize(30);        String str = "Owen Chan";        canvas.drawText(str, 100, 100, paint);        //1. 粗略计算文字宽度        float method1 = paint.measureText(str);        Log.d("owen", "measureText=" + paint.measureText(str));        //2. 计算文字所在矩形,可以得到宽高        Rect rect = new Rect();        paint.getTextBounds(str, 0, str.length(), rect);        int w = rect.width();        int h = rect.height();        Log.d("owen", "strW=" + w +"  strH="+h);        //3. 精确计算文字宽度         int strWidth = 0;        int len = str.length();        float[] widths = new float[len];        paint.getTextWidths(str, widths);        for (int j = 0; j < len; j++) {            strWidth += (int) Math.ceil(widths[j]);        }        Log.d("owen", "strW:" + strWidth);    }
原创粉丝点击