Paint绘制文字
来源:互联网 发布:flow水刀软件 编辑:程序博客网 时间:2024/05/29 11:39
//获得字符行间距// mPaint.getFontSpacing(); //获得字符之间的间距// mPaint.getLetterSpacing();// mPaint.setLetterSpacing(letterSpacing)//设置 //设置文本删除线// mPaint.setStrikeThruText(true); //是否设置下划线// mPaint.setUnderlineText(true); //设置文本大小// mPaint.setTextSize(textSize);// mPaint.getTextSize();// mPaint.setTypeface(Typeface.BOLD);//设置字体类型// Typeface.ITALIC// Typeface.create(familyName, style)//加载自定义字体 //文字倾斜 默认0,官方推荐的-0.25f是斜体// mPaint.setTextSkewX(-0.25f); //文本对齐方式// mPaint.setTextAlign(Align.LEFT);// mPaint.setTextAlign(Align.CENTER);// mPaint.setTextAlign(Align.RIGHT); //计算制定长度的字符串(字符长度、字符个数、显示的时候真实的长度)// int breadText = mPaint.breakText(text, measureForwards, maxWidth, measuredWidth) mPaint.setTextSize(50);// float[] measuredWidth = new float[1];// int breakText = mPaint.breakText(str, true, 200, measuredWidth);// Log.i("RICKY", "breakText="+breakText+", str.length()="+str.length()+", measredWidth:"+measuredWidth[0]); // Rect bounds获取文本的矩形区域(宽高)// mPaint.getTextBounds(text, index, count, bounds)// mPaint.getTextBounds(text, start, end, bounds) //获取文本的宽度,和上面类似,但是是一个比较粗略的结果 float measureText = mPaint.measureText(str); //获取文本的宽度,和上面类似,但是是比较精准的。 float[] measuredWidth = new float[10]; //measuredWidth得到每一个字符的宽度;textWidths字符数 int textWidths = mPaint.getTextWidths(str, measuredWidth);// mPaint.getTextWidths(text, start, end, widths) Log.i("RICKY", "measureText:"+measureText+", textWidths:"+textWidths); **基线的问题** FontMetrics fontMetrics = mPaint.getFontMetrics(); FontMetrics fontMetricsInt = mPaint.getFontMetricsInt(); // 和上面是一样的,只不过返回的是int值 fontMetrics.top; fontMetrics.ascent; fontMetrics.descent; fontMetrics.bottom; 所有的四个值都是以基线baseLine为基准来计算的。baseline以上的就是负的;以下的是正的。 在做自定义控件的时候canvas.drawText(x,y) 这个y并不是text的左上角,而是以baseline为基准的。 1)实例:指定左上角的顶点坐标 绘制文本 公式: float baselineY = Y - fontMetrics.top; 2)实例:指定中间位置,绘制文本 公式: float baselineY = centerY + (fontMetrics.bottom-fontMetrics.top)/2 - fontMetrics.bottom
http://blog.csdn.net/eyishion/article/details/51824520
http://blog.csdn.net/su1216/article/details/46900617
渲染
阅读全文
0 0
- Paint绘制文字用法
- Paint绘制文字
- Canvas+Paint绘制路径,文字与图形
- 使用canvas与Paint在View中居中绘制文字
- 使用canvas与Paint在View中居中绘制文字
- 使用canvas与Paint在View中居中绘制文字
- 使用canvas与Paint在View中居中绘制文字
- 绘制基础知识-canvas paint
- Paint之文字相关
- 绘制文字
- 文字绘制
- 绘制文字
- 绘制文字
- 绘制文字
- 绘制文字
- Android Canvas Paint绘制文本
- Android paint绘制直线,曲线
- Paint绘制简单的进度条
- 用map解决one to one关系
- USB通讯协议
- CSS 内边距padding ,外边距margin
- 一个兼容所有浏览器的滑动固定导航--值得收藏
- 【学习记录】二分图染色
- Paint绘制文字
- 代码生成器
- 17.Oracle杂记——数据字典dba_ts_quotas
- 转换为不同灰度级图像
- SpringMVC的简介概述、工作原理
- 多线程编程之四:WaitForSingleObject的详细用法
- 18.Oracle杂记——数据字典dba_users
- QGIS开发之地图渲染与打印
- Best Reward