android字体间距如何修改,【Android】如何改变TextView字体间距
方法:
1.自定义字体,在其中添加间距,较复杂
2.字母间加空格,不太可取,宽度不灵活
3.用textScaleX和space,自定义TextView,让textScaleX只改变间距,不改变字体
4.复写onDraw,每次画一个字符,手动控制每个字符的位置。
下面提供方法3的代码,参考链接:
https://stackoverflow.com/questions/14283246/change-text-kerning-or-spacing-in-textview
package nl.raakict.android.spc.widget;
import android.content.Context;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ScaleXSpan;
import android.util.AttributeSet;
import android.widget.TextView;
public class LetterSpacingTextView extends TextView {
private float letterSpacing = LetterSpacing.BIGGEST;
private CharSequence originalText = "";
public LetterSpacingTextView(Context context) {
super(context);
}
public LetterSpacingTextView(Context context, AttributeSet attrs){
super(context, attrs);
originalText = super.getText();
applyLetterSpacing();
this.invalidate();
}
public LetterSpacingTextView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
public float getLetterSpacing() {
return letterSpacing;
}
public void setLetterSpacing(float letterSpacing) {
this.letterSpacing = letterSpacing;
applyLetterSpacing();
}
@Override
public void setText(CharSequence text, BufferType type) {
originalText = text;
applyLetterSpacing();
}
@Override
public CharSequence getText() {
return originalText;
}
private void applyLetterSpacing() {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < originalText.length(); i++) {
String c = ""+ originalText.charAt(i);
builder.append(c.toLowerCase());
if(i+1 < originalText.length()) {
builder.append("\u00A0");
}
}
SpannableString finalText = new SpannableString(builder.toString());
if(builder.toString().length() > 1) {
for(int i = 1; i < builder.toString().length(); i+=2) {
finalText.setSpan(new ScaleXSpan((letterSpacing+1)/10), i, i+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
super.setText(finalText, BufferType.SPANNABLE);
}
public class LetterSpacing {
public final static float NORMAL = 0;
public final static float NORMALBIG = (float)0.025;
public final static float BIG = (float)0.05;
public final static float BIGGEST = (float)0.2;
}
}
原文:http://www.cnblogs.com/ryq2014/p/6897769.html
android字体间距如何修改,【Android】如何改变TextView字体间距相关推荐
- Android动态改变TextView字体颜色
Android动态改变TextView字体颜色 分类: Android 2012-06-04 21:56 141人阅读 评论(0) 收藏 举报 androidcolorslayout 必须在在res/ ...
- Android Studio(五):修改Android Studio项目包名
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- android 标题字体大小,如何修改android studio标题字体大小
匿名用户 1级 2017-03-08 回答 之前为大家讲解了android studio怎么修改字体大小和颜色?其实android studio代码字体样设置位置和之前将的设置位置是一样的,这里再给大 ...
- android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...
最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...
- android导航条高度修改,Android中修改TabLayout底部导航条Indicator长短的方法
前言 对于Tablayout相信大家都不陌生,在开发中使用的应该很频繁了,但是底部导航条长短是固定死的,需要自己来改动长短,找了半天没找着方法,看了下官方建议,可以通过映射来修改自己想要的长短,其实也 ...
- android 反调试 github,修改Android手机内核,绕过反调试
本文博客链接:http://blog..net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 OS Ve ...
- android获取ro._修改Android序列号(Serial Number)
文档说明 本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number. Serial Number说明 菜单 Abou ...
- android代码图片编辑,怎样修改android系统apk软件里面的代码和图片?
你好,你的问题我算是看明白了,从你的问题可以设计三个方面,apk反编译.apk回编译以及apk签名,看来,我得从头说起了. 首先,我在这里提供下反编译Android所需的软件,当然是全套,刚刚收集整理 ...
- 【Android系统源码修改】如何内置字体,添加字体文件到system/fonts
1 添加字体文件 将字体文件复制到frameworks/base/data/fonts/ 2 在Android.mk中添加模块 添加模块后,才能在编译时,把字体拷贝到/system/fonts/ 下 ...
最新文章
- AJAX 请求真的不安全么?
- 深入认识二进制序列化--记一次生产事故的思考
- caffe学习笔记19-batchsize参数
- emlog_toolkit.php,emlog 4.0版本IIS6下伪静态划定规矩
- Python代码覆盖性测试入门
- ES6学习(一)— Babel转码器的使用和配置
- power bi自定义地图_如何使用自定义形状图在Power BI中创建地理图
- pd虚拟机镜像:懒人一键安装win10、11
- android抓包为什么有些数据抓不了?抓包的辛酸历程
- java五子棋难度_简单五子棋JAVA
- 计算机语言的拼音,语言拼音_语言的拼音和组词_怎么写语言拼音
- 桌面HTML更换图标,桌面图标怎么制作更换 桌面ico图标制作软件
- 回声消除(AEC)初体验之matlab仿真
- mysql 回归分析_统计科学之多元回归分析
- 硬盘、U盘、软盘之比较
- 服务器如何验证jwt,使用JWT实现前后端权限验证
- 水库信息化监测系统有哪些?水库信息化监测解决方案
- PHPSTORM+phpstudy 显示waiting for incoming connection with ide key
- 苹果 iTunes connect 下架APP
- 【通知】Linux glibc 中发现幽灵漏洞,请及时修复