博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
drawText()文本居中显示
阅读量:4952 次
发布时间:2019-06-11

本文共 1104 字,大约阅读时间需要 3 分钟。

int circleXY = (int) (mWidth / 2);        int circleRadius = (int) ((mWidth * 0.5) / 2) + 20;        //计算文本宽度        int textWidth = getTextWidth(mTextPaint,mText);        //计算baseline:垂直方向居中        Paint.FontMetricsInt fontMetrics = mTextPaint.getFontMetricsInt();        int baseline = (getMeasuredHeight() - fontMetrics.bottom + fontMetrics.top) / 2 - fontMetrics.top;        Rect bounds = new Rect();        mTextPaint.getTextBounds(mText, 0, mText.length(), bounds);        int textX = (circleXY-textWidth)/2+circleRadius-20;        canvas.drawText(mText,textX,baseline,mTextPaint);
/**     * 获取文本的宽度     * @param paint     * @param str     * @return     */    public static int getTextWidth(Paint paint, String str) {        int iRet = 0;        if (str != null && str.length() > 0) {            int len = str.length();            float[] widths = new float[len];            paint.getTextWidths(str, widths);            for (int j = 0; j < len; j++) {                iRet += (int) Math.ceil(widths[j]);            }        }        return iRet;    }

 

转载于:https://www.cnblogs.com/hacjy/p/7017832.html

你可能感兴趣的文章
Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告
查看>>
活现被翻转生命
查看>>
POJ 1228
查看>>
SwaggerUI+SpringMVC——构建RestFul API的可视化界面
查看>>
springmvc怎么在启动时自己执行一个线程
查看>>
流操作的规律
查看>>
Python基础学习15--异常的分类与处理
查看>>
javascript运算符的优先级
查看>>
React + Redux 入门(一):抛开 React 学 Redux
查看>>
13位时间戳和时间格式化转换,工具类
查看>>
vue router-link子级返回父级页面
查看>>
C# 通知机制 IObserver<T> 和 IObservable<T>
查看>>
Code of Conduct by jsFoundation
查看>>
div 只显示两行超出部分隐藏
查看>>
C#小练习ⅲ
查看>>
debounce、throttle、requestAnimationFrame
查看>>
linux下的C语言快速学习—进程和文件
查看>>
电源防反接保护电路
查看>>
stm32 堆和栈(stm32 Heap & Stack)
查看>>
SpringMVC从入门到精通之第三章
查看>>