andorid 字体 修改

简介: 引用:http://www.ucrobotics.com/index.php/en/forum/18-Android%E6%8A%80%E6%9C%AF%E6%8E%A2%E8%AE%A8/82-Android%E4%B8%ADPaint%E5%AD%97%E4%BD%93%E5%B1%9E%E6%...

引用:http://www.ucrobotics.com/index.php/en/forum/18-Android%E6%8A%80%E6%9C%AF%E6%8E%A2%E8%AE%A8/82-Android%E4%B8%ADPaint%E5%AD%97%E4%BD%93%E5%B1%9E%E6%80%A7%E7%9A%84%E8%AE%BE%E7%BD%AE

在Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体:
Paint mp = new paint();
mp.setTypeface(Typeface.DEFAULT_BOLD)

常用的 字体类型名称还有:
  • Typeface.DEFAULT //常规字体类型
  • Typeface.DEFAULT_BOLD //黑体字体类型
  • Typeface.MONOSPACE //等宽字体类型
  • Typeface.SANS_SERIF //sans serif字体类型
  • Typeface.SERIF //serif字体类型

除了字体类型设置之外,还可以为字体类型设置字体风格,如设置粗体:
Paint mp = new Paint();
Typeface font = Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD);
p.setTypeface( font );

常用的 字体风格名称还有:
  • Typeface.BOLD //粗体
  • Typeface.BOLD_ITALIC //粗斜体
  • Typeface.ITALIC //斜体
  • Typeface.NORMAL //常规


但是有时上面那些设置在绘图过程中是不起作用的,所以还有如下设置方式:
Paint mp = new Paint();
mp.setFakeBoldText(true); //true为粗体,false为非粗体
mp.setTextSkewX(-0.5f); //float类型参数,负数表示右斜,整数左斜
mp.setUnderlineText(true); //true为下划线,false为非下划线
mp.setStrikeThruText(true); //true为删除线,false为非删除线

Paint常用的方法还有:
mp.setTextSize(); //设置字体大小,int型,如12
mp.setStrokeWidth(w); //设置线宽,float型,如2.5f,默认绘文本无需设置(默认值好像为0),但假如设置了,再绘制文本的时候一定要恢复到0


说明:对于中文粗体的设置,好像只能通过setFakeBoldText(true)来实现,尽管效果看起来不是很实在(字体中空效果)。实际发现,最后绘制的效果与手机硬件也有些关系,比如前面的绘图测试程序,在HTC里面黑体中文一行压根没显示(英文和数字是正常的),而斜体一行倒显示了,只是没有斜体效果。魅族M9表现的很给力,可能是M9定制的Android系统里面字体库比较丰富吧!
相关文章
|
XML 自然语言处理 Java
Kotlin 使用DSL构建语法结构 看这一篇就够了~
Kotlin 使用DSL构建语法结构 看这一篇就够了~
2373 0
Kotlin 使用DSL构建语法结构 看这一篇就够了~
|
2月前
|
编解码
利用 Hi-C 挖掘癌症结构变异 (1)
利用 Hi-C 挖掘癌症结构变异 (1)
利用 Hi-C 挖掘癌症结构变异 (1)
|
Rust 编译器 Linux
Rust编译过程讲解与开发环境准备
目前主流编译平台有,GNU、MSVC、LLVM。因为rustc调用了llvm,因此我们以LLVM为例,我们从C语言的编译过程聊,再对比Rust,看它们的编译过程有何差异。
404 3
|
Oracle Java 关系型数据库
Java----CentOS7系统安装jdk1.8
Java----CentOS7系统安装jdk1.8
2334 0
|
12月前
|
JavaScript 前端开发
Discuz!X3.5 怎么样加防复制的设置
Discuz!X3.5 怎么样加防复制的设置
168 0
|
数据采集 Web App开发 JavaScript
了解Puppeteer,可模拟登录和模拟不同设备
了解Puppeteer,可模拟登录和模拟不同设备
1181 0
|
缓存 监控 NoSQL
Python编程:supervisor模块管理进程实例
Python编程:supervisor模块管理进程实例
1006 0
Python编程:supervisor模块管理进程实例
|
前端开发
vcharts设置legend属性无效解决办法
内容概览 需求: 折线图上有 一个产品的目标值和实际值 ,通过点击其中一个legend,同时隐藏该产品的实际值和目标值(指折线图上的线) 当我觉得这个需求很 easy 的时候,居然发现 动态设置 legend 属性无效 …… 通过本文来记录这个解决过程,前端真是太难了 哈哈 在 v-charts 中, 折线图的写法如下: <ve-line :extend="chartExtend" :data="chartData" :events="chartEvents" height="58vh" ></ve-line>。 而 v-charts 是对 echart 的包装,很多事件都可以从 ech
1550 0
|
消息中间件 设计模式 安全
LiveData vs EventBus?是否可以实现共赢
近日,据国外媒体报道,电动汽车厂商特斯拉的股价本周一再次大涨,延续上周4个交易日连续大涨的势头,CEO埃隆·马斯克的身价也因此而增至463亿美元,比马云和拼多多创始人黄峥均高出了31亿美元。
LiveData vs EventBus?是否可以实现共赢
|
机器学习/深度学习 编解码 算法
【图像检测-边缘检测】基于插值法实现亚像素边缘检测含Matlab源码
【图像检测-边缘检测】基于插值法实现亚像素边缘检测含Matlab源码