真正解决TextView行间距、字间距的问题
来源:互联网 发布:英语点读机软件下载 编辑:程序博客网 时间:2024/05/17 09:35
1.修改行间距(最简单)
在xml中设置
(1)lineSpacingMultiplier属性,意思是行与行之间的距离倍数,相当于word里面的行间距,例如1.5倍行间距
android:lineSpacingMultiplier="1.5"
(2)lineSpacingExtra属性,直接设定行与行之间的距离,每行相距3dp
android:lineSpacingExtra="3dp"
通过上面的任何一种方法都可以实现行间距的调整。
2.修改字间距(牛逼的来了)
之前网上有人说,通过android:textScaleX可以调整,事实是不行的,Scale很明显是缩放比例,这个属性是控制字放大缩小用的。要实现调整字间距,只能自定义TextView来实现了,下面附上代码。
/** * 作者: * 自定义可以调节字间距的TextView,使用的时候,要在JAVA代码中调用settext方法设置文字,调用setSpacing设置 * 字间距(float类型) */public class ShangshabanChangeTextSpaceView extends TextView { private float spacing = Spacing.NORMAL; private CharSequence originalText = ""; public ShangshabanChangeTextSpaceView(Context context) { super(context); } public ShangshabanChangeTextSpaceView(Context context, AttributeSet attrs) { super(context, attrs); } public ShangshabanChangeTextSpaceView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public float getSpacing() { return this.spacing; } public void setSpacing(float spacing) { this.spacing = spacing; applySpacing(); } @Override public void setText(CharSequence text, BufferType type) { originalText = text; applySpacing(); } @Override public CharSequence getText() { return originalText; } private void applySpacing() { if (this == null || this.originalText == null) return; StringBuilder builder = new StringBuilder(); for (int i = 0; i < originalText.length(); i++) { builder.append(originalText.charAt(i)); 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((spacing + 1) / 10), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } } super.setText(finalText, BufferType.SPANNABLE); } public class Spacing { public final static float NORMAL = 0; }}
OK,把这个自定义TextView放到布局文件中,然后在JAVA代码中调用方法就可以了。
参考文章
0 0
- 真正解决TextView行间距、字间距的问题
- 真正解决TextView行间距、字间距的问题
- 真正解决TextView行间距、字间距的问题
- TextView设置字间距和行间距
- 设置TextView字间距和行间距
- android textView调整字体的间距和行间距
- Android TextView 设置字间距和行间距
- Android设置TextView字间距与行间距
- 记录TextView设置行间距和字间距
- Android TextView行间距,字体间距
- Android TextView行间距,字体间距
- TextView文字间距美化-行间距
- 字间距、行间距的代码
- Android Study 之真正解决TextView字间距,那些扯淡的边儿去吧
- android开发之自定义TextView设置字间距以及通过TextView控件属性设置行间距
- UILabel字间距行间距
- TextView字间距问题
- TextView中的行间距问题
- 如何在Linux中加入cron任务
- java导出导入工具类使用demo
- 函数指针与函数指针数组的简单理解以及vector
- 栈的几个常用方法
- Android Studio Mac版 快捷键
- 真正解决TextView行间距、字间距的问题
- SQL 视图的作用
- Android开发当中常用的方法集锦
- 从海康7816的ps流里获取数据h264数据
- awt--GirdLayout的使用
- 数据结构与算法——笔记(1)概念
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- js/html中input、text、redio、checkbox、file、option以及textarea标签的使用
- HTML5新元素及其特性