首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android canvas drawText()文字居中效果

本文跟大家分享下我关于drawText()文字居中的方法。 先附上drawText()的方法说明 ?...像图上这样安卓的文字绘制是相对于基线绘制的,也就是图中的红线,而top+bottom的长度就等于字体高度.即等于|top|+|bottom|绝对值 实际绘制的时候取决于基线上一个点来绘制文字,而这个点有三种分别对应为...= new Paint(); rectPaint.setColor(Color.BLUE); rectPaint.setStyle(Paint.Style.FILL); canvas.drawRect...) (rect.centerY() - top/2 - bottom/2);//基线中间点的y轴计算公式 canvas.drawText("你好世界",rect.centerX(),baseLineY...,textPaint); 这里有点要注意textPaint.getFontMetrics()这个方法一定要在设置字体大小或者样式等等一系列会影响字体的方法后在调用,不然获取到的top和bottom值不准

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    css样式—字体垂直、水平居中

    1.行内元素(又叫内联元素inline element):     (1) 不占据一整行,随内容而定,有以下特点:     (2) 不可以设置宽高,也不可以设置行高,其宽度随着内容增加,高度随字体大小而改变...常用的内联元素有:a - 锚点,b - 粗体(不推荐),br - 换行,em - 强调,font - 字体设定(不推荐),i - 斜体,img - 图片,input - 输入框,label - 表格标签..., select - 项目选择,small - 小字体文本,span - 常用内联容器,定义文本内区块,strike - 中划线,strong - 粗体强调 1.块级元素block element:     ...这个很好理解,居中,肯定是行居中,如果使用它的元素本身不拥有完整的在宽度上的独立空间,它当然没有能力让它内部的文字或者图片居中。   ...但是子元素中文字的居中,是在子div中居中,而不是对于父div居中。也就是,它里面所有的文字,都会相对于最靠近自己的一层div来实现居中。所以,这个属性不能用于div在父div中的整体居中

    4.1K100

    Python-Excel-05-居中设置及字体设置

    Windows-x86_64 编辑器:pycharm-community-2016.3.2 这个系列讲讲Python对Excel的操作 今天讲讲win32com模块对已有Excel文件的操作:单元格内信息居中设置及字体设置...Part 1:示例说明 示例工作表中,所有单元格信息,上下居中,左右居中 字体设置:中文字体,黑体;西文字体,Arial 原格式 ?...# 旨在直接使用VBA常数 current_address = os.path.abspath('.')excel_address = os.path.join(current_address, "居中设置及字体设置...,纵向居中 rng_cells.Font.Size = 16,字体大小设置 rng_cells.Font.Name = "黑体",设置中文字体 rng_cells.Font.Name = "Arial"...,设置西文字体,按照经验必须得先设置中文字体,再设置西文字体,才能达到效果

    4K10

    原 html2canvas解决字体渐变

    https://github.com/tsayen/dom-to-image; star:3539; 另一个为htmltocanvas:https://github.com/niklasvh/html2canvas...使用方法 使用方法很简单:在正常的html中引入html2canvas.js后只需要写如下几行代码; html2canvas(document.getElementById("container"))....then(function (canvas) { document.body.appendChild(canvas) }) 遇到的问题 在使用文本渐变功能的时候,在进行生成图片的时候渐变的文本不能正常的显示渐变内容...明明canvas是支持文本渐变的,这怎么就实现不了了,是官网查了一下and看了github的issues,确实也有很多同学遇到和我同样的问题:https://github.com/niklasvh/html2canvas...上面为需要转为图片的dom,下面为转了之后的,因为渐变的颜色是直接写在了html2canvas了,还有很多可以优化的点,目前仅仅是实现了效果.待优化!

    6.9K51

    Android Canvas drawText文字居中的一些事(图解)

    3.绘制居中的文本 在上文中,我们学习了如何绘制一段文本,以及其中参数和坐标的含义,接下来进入正题,看下如何才能绘制居中的文本。...绘制居中文本 大功告成!...includepad); } source:需要分行的文本 paint:画笔对象 width:layout的宽度,文本超出宽度时自动换行 align:layout的对其方式 spacingmult:相对行间距,相对字体大小...,1f表示行间距为1倍的字体高度 spacingadd:基础行距偏移值,实际行间距等于(spacingmult + spacingadd) includepad:参数未知 看下效果: ?...文本在x轴下方:红色A的baseline向下移动c距离,总高度的/2 – 文本的bottom值(绝对值) 看下代码: /** * 绘制多行居中文本(方式2) * * @param canvas

    2.9K20

    图形编辑器基于Paper.js教程11:使用Paper.js和Opentype.js加载自定义字体的技术实现解析

    本文将详细探讨如何使用Paper.js和Opentype.js在HTML5 canvas上实现自定义字体的加载与显示。我们将通过分析一段实际代码来理解关键技术实现及其难点。...效果图 核心技术概览 Paper.js: 一个强大的向量图形框架,用于在网页上简化与canvas元素的交互。...CSS样式确保canvas和控件的布局美观且功能性强,如居中显示canvas、设置边框和按钮样式等。...加载成功后,通过Opentype.js获取字体路径,并将此路径转换为Paper.js的路径对象(CompoundPath),以在canvas上渲染。...: 字体文件的加载是异步的,这可能导致在字体完全加载之前canvas上的文本显示不正确。

    10510

    前端文章收藏

    CSS中的基本图形和路径 字体 CSS 字体介绍 Typography CSS:7个你可能不认识的单位 vmin, vmax, ex 和 ch 这些单位大家都知道吗~ 单位 长度单位 CSS中强大的...inline-block元素的空白间距 inline-block 布局写法示例 table-layout position HTML和CSS高级指南之二——定位详解 十步图解CSS的position 居中...元素的垂直居中的方法 元素的水平居中的方法 文字围绕形状 如何在Web中使用CSS Shapes CSS Exclusions:让布局变得更有意思 网格布局(Grid Layout) 通过漫画阐述...两个viewport的故事(第二部分) 细节布局 深入了解CSS字体度量,行高和vertical-align 行高比你想象中的复杂。...Canvas Canvas Cheat Sheet Canvas学习:Canvas入门准备 WebGL WebGL Fundamentals(中文版) 调试 你不知道的 JS 错误和调用栈常识 Node.js

    1.5K21

    js实现截图并保存图片(html转canvascanvas转image)

    js实现截图并保存图片在本地(html转canvascanvas转image) 一、html转canvas 需要的库html2canvas.jscanvas2image.js 话不多说,直接上代码!... <script type="text/javascript" src="html2<em>canvas</em>.min.<em>js</em>...点击转成<em>canvas</em>: ? 可以看见此时增加一个一个<em>canvas</em>标签: ? 点击转成图片: ? 可以看见此时增加一个一个img标签: ? 点击保存: ? ? 至此,<em>js</em>截图就做完了。...html2<em>canvas</em>.<em>js</em>和<em>canvas</em>2image.<em>js</em>的下载地址: html2<em>canvas</em>.<em>js</em>:http://html2<em>canvas</em>.hertzen.com/dist/html2<em>canvas</em>.min.<em>js</em>...<em>canvas</em>2image.<em>js</em>:https://github.com/SuperAL/<em>canvas</em>2image 源代码下载

    26K41

    微信小程序那点事:特性总结

    一、微信小程序运行环境 1、完全封闭的环境不等于浏览器环境 2、WXML/WXSS/JS格式 3、WXML 不等于 HTML 4、WXSS 不等于 CSS3 5、JS:...支持ES6,ES5,不支持DOM(window,document,event,etc...) 6、不支持WEBGL,包含部分Canvas API 7、封闭的发布渠道:程序需通过官方IDE...提交审核 8、腾讯完全控制客户端底层的内部实现 二、微信小程序Canvas游戏限制分析 1、不支持Affine Transform 矩阵设置 2、不支持globalAlpha(忘记淡入淡出...) 3、不支持贴图变色(无法创建缓存Canvas对象) 4、不支持图集(无法创建Image对象) 5、不支持BMFont字体 6、不支持剪裁(忘记ScrollView)...WebGL,所以不支持任何高级特效 8、严格的模块化,不支持全局变量注入,只支持global下注入 9、不支持项目内文件加载 10、不支持多点触摸 11、不支持文字排版:换行,居中

    1.1K60

    轻松生成小程序分享海报

    image 要解决的问题 单位问题 canvas隐藏问题 圆角矩形、圆角图片 多段文字 超长文字和多行文字缩略问题 矩形包含文字 多个元素间的层级问题 图片尺寸和渲染尺寸不一致问题...**圆角矩形、圆角图片** 由于canvas没有提供现成的圆角api,所以我们只能手工画啦,实际上圆角矩形就是由4条线(黄色)和4个圆弧(红色)组成的,如下: <ignore_js_op style...超长文字和多行文字缩略问题 设置文字的宽度,通过ctx.measureText知道文字的宽度,如果超出设定的宽度,超出部分使用“...”代替;对于多行文字,经测试发现字体的高度大约等于字体大小,并提供lineHeight...middle(this.ctx.setTextBaseline('middle');),设置文字的坐标为矩形的中线就可以了;水平居中this.ctx.setTextAlign('center');;...image 多个元素间的层级问题 由于canvas没有Api可以设置绘制元素的层级,只能是根据后绘制层级高于前面绘制的方式,所以需要用户传入zIndex字段,利用数组排序

    2.4K30

    canvas入门实战--邀请卡生成与下载

    但是以后对canvas的需求,肯定会越来越大。所以canvas很值得学习,而且学好canvas,就是很好的一个加分项。对于这篇文章,我也是以canvas初学者的角度写的,会有很多改善的地方。...有如下需要改变的属性:图片的大小,图片,用户名,用户名的坐标(x,y,x轴是否居中,y轴是否居中),用户名字体的大小,用户名字体的颜色,以及下载图片的类型。...("2d"); //设置字体的坐标 var _x = obj.x, _y = obj.y; //是否居中显示 if (obj.xCenter) { _x...是否水平居中显示 ? 其他的属性,字体大小和颜色,基本是一样的代码,运行的效果图我不放了!...; var ctx = canvas.getContext("2d"); //设置字体的坐标 var _x = obj.x, _y = obj.y; //是否居中显示

    56430
    领券