1首先利用canvas获取画布的宽高,

//获取屏幕的宽和高

int width = canvas.getWidth();

int height = canvas.getHeight();

2获取文字的宽度,

private int getTextWidth(Paint paint, String text){

int iRet = ;

if (text != null && text.length() > ) {

int len = text.length();

float[] widths = new float[len];

paint.getTextWidths(text, widths);

for (int j = ; j < len; j++) {

iRet += (int) Math.ceil(widths[j]);

}

}

return iRet;

}

3计算文字最左边的位置。

分析了一下,假如我们知道画布宽度为200,文字宽度为100;那么我们有如下公式计算文字最左边的位置;

+2x=

那么我们求解x就是我们text在绘制的时候left的值。

eg:

String text = getResources().getString(R.string.scan_text);

int textLeft = (width-getTextWidth(paint,text))/;

canvas.drawText(text,textLeft, (float) (frame.bottom + (float)TEXT_PADDING_TOP *density), paint);

Android Canvas drawText实现中文垂直居中

目标: 把中文字符绘制到目标矩形的居中位置. 问题: Android的Canvas绘图,drawText里的origin是以baseline为基准的,直接以目标矩形的bottom传进drawText, ...

关于Android Canvas&period;drawText方法中的坐标参数的正确解释

canvas.drawText("www.jcodecraeer.com", x, y, paint);  x和y参数是指定字符串中心的坐标吗?还是左上角的坐标?这个问题的直观印象 ...

Android Canvas&period;drawText方法中的坐标参数的正确解释

摘要 canvas.drawText(www.jcodecraeer.com, x, y, paint); x和y参数是指定字符串中心的坐标吗?还是左上角的坐标?这个问题的直观印象应该是左上角的坐标, ...

Android ToolBar标题文字居中的方法

在项目的开发中,使用苹果手机的产品,出的界面效果图极有可能(我这里是一定)完全是按照苹果的界面风格来出的,例如界面顶部的title文字位置是水平居中 如图: 那么问题来了,当我们使用ToolBar控件 ...

Android、IOS文字居中偏离的解决方案

前言 移动端开发,经常会遇到的问题,就是文字居中.一般都只能往css方向去fix这个问题. 自己以前也用过position:relative;top:-*px的方式去解决.

android开发之---文字居中---android中去掉标题栏

1. 让textView里面的内容水平居中 :    android:gravity="center_horizontal" 2. 让textView控件在它的父布局里水平居中   ...

android canvas drawtext 字高

Paint pFont = new Paint(); Rect rect = new Rect(); pFont.getTextBounds("豆", 0, 1, rect); L ...

android中画文字的换行 办法(对于遇到canvas&period;drawText&lpar;String s &rpar;无法实现换行问题的解决)

在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.d ...

【朝花夕拾】Android自定义View篇之(三)Canvas绘制文字

前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10968358.html],谢谢! 前面的文章中在介绍Canvas的时候,提到过后续单独讲Can ...

随机推荐

MFC---给按钮加上快捷键

现在快捷键的使用已经很频繁了.快捷键可以使我们的操作变得更简单,更快捷.如何给自己的按钮加一个快捷键呢.    如下图:我们希望给我们的参照按钮加一个快捷键CTR + F. 不要以为在按钮的标题上加上 ...

学习 opencv---&lpar;1&rpar; opencv3&period;1&period;0 组件结构浅析

本系列是根据 浅墨大神 的opencv系列而写的,,应该大部分内容会一样..如有侵权还请告知........... 开发环境:win7 + VS2013 + opencv3.1.0 至于OpenCV组 ...

Linux 性能优化工具 perf top

1. perf perf 是一个调查 Linux 中各种性能问题的有力工具. NAME perf - Performance analysis tools for Linux SYNOPSIS per ...

转:你需要知道的NoSQL数据库10件事

你需要知道的NoSQL数据库10件事 NoSQL的5个优势 1.弹性扩展 多年来,数据库管理员一直依赖于向上扩展(scale up)-随着数据库负载的增加购买更大的数据库服务器―而不是向外扩展-随着负 ...

Gap 锁

14.3.1 InnoDB Locking InnoDB 锁 本章节描述InnoDB 使用的锁类型: Shared and Exclusive Locks Intention Locks Record ...

django csrf&lowbar;token生成

django模板中生成csrf_token的不同方式 系统环境 CENTOS 6.4 python 2.7.6 django 1.7.1 当post提交表单的的时候,是需要 csrf_token的, ...

ubuntu下面配置apache

1.在这个目录下面修改这个文件 把那个注释了 2.在这个目录下面修改这个文件 把这个改为index的目录

SQL判断语句

,,decode(tts.execute_state,,'false','true')) from twf_tech_schedule tts sql判断语句

MyRolan &lpar;快速启动小工具&rpar;

类似 Rolan的快速启动工具. 启动后隐藏,当鼠标移至左上角时,窗口显示,点击项目可运行程序. GitHub地址: MyRolan . #if defined(UNICODE) && ...

利用final定义方法:这样的方法为一个不可覆盖的方法。

常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值.Final int x=3: ②在构造的时候赋值. 局部变量可以随时赋值.   利用final定义方法:这样的 ...

android canvas添加文字居中,android Canvas drawText 文字居中相关推荐

  1. android动态添加顶部tab,android选项卡(Tab)实现顶部和底部

    1.自己创建一XML文件放于layout文件夹tab.xml(选项卡在顶部) encoding="utf-8"?> android:layout_width="fi ...

  2. android.mk 添加v7_在Android上以命令行方式移植FFmpeg

    最近要做视频I帧提取和摘要生成的项目,在Android平台上的应用,经过调研,发现ffmpeg有很多相关功能的轮子,因此考虑将ffmpeg移植到Android平台.为了更好解耦和以及更多的文档参考,选 ...

  3. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

  4. android.mk添加静态库,Android Gradle添加静态库

    看看这个 sample. >告诉编译器头部的位置(在android.ndk {}中): CFlags ="-I ${file("path / to / headers&quo ...

  5. android 无法添加依赖关系,Android无法添加aop库依赖

    gradle版本4.4 在app的build.gradle中添加如下两个依赖 debugImplementation 'com.didichuxing.doraemonkit:doraemonkit: ...

  6. android 无法添加帐户,android - Android SecurityException:uid xxxxx无法显式添加帐户 - 堆栈内存溢出...

    我收到错误消息 java.lang.SecurityException: uid 10178 cannot explicitly add accounts of type: net.roughdesi ...

  7. android动态添加网格布局,android – 动态网格布局

    您可以动态生成GridView. GridView将根据您的需要包含ImageView和TextView.您必须使用自定义适配器.在它的getView方法中,填充ImageView和TextView. ...

  8. android radiogroup 添加,如何在android中动态添加textview到radiogroup

    大家好, 我们想动态地在radiogroup旁边添加textview.基于服务响应,我们需要在不使用xml的情况下将标签添加到radiogroup. 在某些情况下基于最长无线电如何在android中动 ...

  9. android相机添加一层图片,android 在照片上加标签(贴纸标签相机)源码

    [实例简介]功能:拍照,相片裁剪,给图片贴贴纸,打标签 实现相机功能 实现对图片进行裁剪的功能 图片的滤镜功能 能为图片添加贴纸(贴纸可移动,放大,旋转) 能为图片添加标签(同样可以移动) 本地保存制 ...

  10. android动态添加数组中,Android动态数组

    我正在通过Android Pull Parser技术解析XML文件.首先,看看下面的XML文件: hello xyz abc def 考虑一下我正在解析上面的文件.现在,我的问题是我想为名称和地址创建 ...

最新文章

  1. 平衡树 - treap
  2. 无线信标功能调试-2021-3-9-输出功率恒定限制
  3. ART深度探索开篇:从Method Hook谈起
  4. python面试题库——3数据库和缓存
  5. js如何判断是否在iframe中及防止网页被别站用 iframe嵌套 (Load denied by X-Frame-Options)...
  6. 会员体系架构的设计思路
  7. win10装系统--笔记
  8. 必背单词_考研英语语法如何高效自学? 真题必背单词Day12
  9. 2020全国计算机专业考研学校
  10. Linux kernel中 __bitmap_weight函数的理解
  11. python文本关联分析,详解Python文本操作相关模块
  12. SAP MM批次管理(1)物料与批次
  13. cogs 双服务点设置
  14. 作业调度框架 Quartz 学习笔记(三) -- Cron表达式 (转载)
  15. tcl电视linux软件升级,【高清范】TCL电视升级刷机常见问题大汇总!
  16. 为什么亿万资产的投资者依旧对加密货币长期走势持乐观态度?
  17. 求一个十六进制数的各二进制位_C语言实现
  18. golang读取conf文件的两种方式(ini和Viper)
  19. Sharding-Sphere的新一代Zookeeper注册中心实现剖析
  20. 决策树算法_基本思想

热门文章

  1. 杭电oj HDOJ 2072 单词数
  2. [计算机一级MS备考]
  3. git拉取报错:You have not concluded your merge. (MERGE_HEAD exists)
  4. 人力资源数据分析(包含数据来源文件)
  5. ❤️UI自动化轻松解决微信手工群发消息的烦恼❤️
  6. 服装办理erp体系的优点与选择
  7. 服装管理系统总体概述
  8. springboot 配置RedisTemplate 报:Field redisTemplate in XXX required a bean of type 'org.springframework
  9. jquery/zepto 圣诞节雪花飞扬
  10. 容器化技术最佳实践1--容器化技术简介与Docker入门