关于自定义TextView排版分散对齐的思路
2015-01-13 20:22
267 查看
转载例子:https://github.com/ufo22940268/android-justifiedtextview
默认Textview在一行快要结束的时候,如果在符号后面,有一个长的字符串,这时候,TextView就会自动换行,导致排版会参差不齐,而自动换行导致混乱的原因了是半角字符与全角字符占位不同,一般情况下,我们输入的数字、字母以及英文标点都是半角,中文是全角,因此占位的位置大家都不同。在中英文混输的时候,导致很多文字的排版都是参差不齐的。
那么要想要解决此问题就在解决它们的占位问题,网上有种思路是把半角符号的数字和英文全部转化为全角,这样一个字符就和中文字符对齐了。但是这样的话,就会使英文字母和英文字母之间分的很开,导致十分的难看。下面我们就开始来解决排版的问题。
我们先了解下StaticLayout(This is used by widgets to control text layout. ),这个东西,TextView中就是使用StaticLayout来进行文字的排版处理。而我们这边需要让它来预处理下排版的分布,然后根据其提供的getDesiredWidth(CharSequence source, TextPaint paint)方法来判断一行文字本来需要的宽度值,再固定一行的宽度值,利用
固定的宽度 - 文本宽度 / 文本字数 = 每个文字的间距
这个方法来计算出排版对齐时,每个文字之间的距离。感谢上传例子的仁兄,帮我解决了一个大问题。
默认Textview在一行快要结束的时候,如果在符号后面,有一个长的字符串,这时候,TextView就会自动换行,导致排版会参差不齐,而自动换行导致混乱的原因了是半角字符与全角字符占位不同,一般情况下,我们输入的数字、字母以及英文标点都是半角,中文是全角,因此占位的位置大家都不同。在中英文混输的时候,导致很多文字的排版都是参差不齐的。
那么要想要解决此问题就在解决它们的占位问题,网上有种思路是把半角符号的数字和英文全部转化为全角,这样一个字符就和中文字符对齐了。但是这样的话,就会使英文字母和英文字母之间分的很开,导致十分的难看。下面我们就开始来解决排版的问题。
我们先了解下StaticLayout(This is used by widgets to control text layout. ),这个东西,TextView中就是使用StaticLayout来进行文字的排版处理。而我们这边需要让它来预处理下排版的分布,然后根据其提供的getDesiredWidth(CharSequence source, TextPaint paint)方法来判断一行文字本来需要的宽度值,再固定一行的宽度值,利用
固定的宽度 - 文本宽度 / 文本字数 = 每个文字的间距
这个方法来计算出排版对齐时,每个文字之间的距离。感谢上传例子的仁兄,帮我解决了一个大问题。
相关文章推荐
- android 自定义textView,实现排版对齐和换行
- 实现TextView 文字排版,分散两端对齐
- 分享一个菜鸟级别的FMTextView 图文排版,支持两端对齐,自定义行高等
- 实现TextView 文字排版,分散两端对齐
- Android 自定义TextView 实现文字对齐排版且支持点击划词
- 两端分散对齐的Textview
- Android]TextView实现分散对齐(两端对齐)
- Android自定义TextView排版优化
- 通过自定义TextView,拉伸每行解决自动换行文字排版参差不齐问题
- 【TextView】自定义TextView中文换行排版问题修复
- 自定义View--文字两端能够对齐的TextView,文字右端能够对齐的TextView
- JustifyTextView 自定义TextView解决中文排版
- 解决TextView排版不齐问题----自定义TextVIew
- TextView实现分散对齐(两端对齐)
- 关于自定义dialog中textview的显示的问题
- Android 关于自定义TextView的测量
- [Android]TextView实现分散对齐(两端对齐)
- android自定义view解决textview显示排版的问题
- Android中用webView来解决文字排版实现两端分散对齐的方式
- [Android]TextView实现分散对齐(两端对齐)