方法:

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字体间距相关推荐

  1. Android动态改变TextView字体颜色

    Android动态改变TextView字体颜色 分类: Android 2012-06-04 21:56 141人阅读 评论(0) 收藏 举报 androidcolorslayout 必须在在res/ ...

  2. Android Studio(五):修改Android Studio项目包名

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  3. android 标题字体大小,如何修改android studio标题字体大小

    匿名用户 1级 2017-03-08 回答 之前为大家讲解了android studio怎么修改字体大小和颜色?其实android studio代码字体样设置位置和之前将的设置位置是一样的,这里再给大 ...

  4. android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...

    最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...

  5. android导航条高度修改,Android中修改TabLayout底部导航条Indicator长短的方法

    前言 对于Tablayout相信大家都不陌生,在开发中使用的应该很频繁了,但是底部导航条长短是固定死的,需要自己来改动长短,找了半天没找着方法,看了下官方建议,可以通过映射来修改自己想要的长短,其实也 ...

  6. android 反调试 github,修改Android手机内核,绕过反调试

    本文博客链接:http://blog..net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 OS Ve ...

  7. android获取ro._修改Android序列号(Serial Number)

    文档说明 本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number. Serial Number说明 菜单 Abou ...

  8. android代码图片编辑,怎样修改android系统apk软件里面的代码和图片?

    你好,你的问题我算是看明白了,从你的问题可以设计三个方面,apk反编译.apk回编译以及apk签名,看来,我得从头说起了. 首先,我在这里提供下反编译Android所需的软件,当然是全套,刚刚收集整理 ...

  9. 【Android系统源码修改】如何内置字体,添加字体文件到system/fonts

    1 添加字体文件 将字体文件复制到frameworks/base/data/fonts/ 2 在Android.mk中添加模块 添加模块后,才能在编译时,把字体拷贝到/system/fonts/ 下 ...

最新文章

  1. AJAX 请求真的不安全么?
  2. 深入认识二进制序列化--记一次生产事故的思考
  3. caffe学习笔记19-batchsize参数
  4. emlog_toolkit.php,emlog 4.0版本IIS6下伪静态划定规矩
  5. Python代码覆盖性测试入门
  6. ES6学习(一)— Babel转码器的使用和配置
  7. power bi自定义地图_如何使用自定义形状图在Power BI中创建地理图
  8. pd虚拟机镜像:懒人一键安装win10、11
  9. android抓包为什么有些数据抓不了?抓包的辛酸历程
  10. java五子棋难度_简单五子棋JAVA
  11. 计算机语言的拼音,语言拼音_语言的拼音和组词_怎么写语言拼音
  12. 桌面HTML更换图标,桌面图标怎么制作更换 桌面ico图标制作软件
  13. 回声消除(AEC)初体验之matlab仿真
  14. mysql 回归分析_统计科学之多元回归分析
  15. 硬盘、U盘、软盘之比较
  16. 服务器如何验证jwt,使用JWT实现前后端权限验证
  17. 水库信息化监测系统有哪些?水库信息化监测解决方案
  18. PHPSTORM+phpstudy 显示waiting for incoming connection with ide key
  19. 苹果 iTunes connect 下架APP
  20. 【通知】Linux glibc 中发现幽灵漏洞,请及时修复

热门文章

  1. 程序员必备基础:如何安全传输存储用户密码?
  2. 面试官:关于Spring就问这13个
  3. 东汉末年,他们把「服务雪崩」玩到了极致(干货)
  4. 【高并发】ThreadLocal学会了这些,你也能和面试官扯皮了!
  5. Java stream! Kafka steam!流式处理这么火!它究竟是个啥?
  6. MVC已经死了,接下来会发生什么?
  7. ROS-Baxter抓取
  8. python~OpenCV
  9. springboot 日志 log4j
  10. 最小树形图复杂度分析