AlignTextView:字体对齐的textview

lbzh0981 9年前

字体对齐的textview。分为支持选择复制的CBAlignTextView 和不支持选择复制的AlignTextView。比github上已经存在的JustifyTextView效果要好,不会出现字符间隔很大的情况。

使用说明:

系统要求

 

Android 4.0以上

 

快速使用

 

build.gradle加入dependencies

compile 'me.codeboy.android:align-text-view:2.3.0'

AlignTextView (不支持选择复制,在不需要进行选择复制的情况下使用,排版效果好)

 <me.codeboy.android.aligntextview.AlignTextView          android:id="@+id/alignTv"          android:layout_width="match_parent"          android:layout_height="wrap_content"/>

CBAlignTextView (新的版本,支持选择复制,排版效果比较的好)

<me.codeboy.android.aligntextview.CBAlignTextView          android:id="@+id/cbAlignTv"          android:textIsSelectable="true"          android:layout_width="match_parent"          android:layout_height="wrap_content"/>

如果需要支持android默认的选择复制,请在xml中加入以下代码:

android:textIsSelectable="true"

相关方法

 

1.CBAlignTextView

 

CBAlignTextView中增加了以下方法获取TextView的文本内容,请不要使用getText()获取

 

getRealText()

由于Android L(5.0)之后对中文的版本进行了变化,造成不能由中文标点作为行首,所以为了能够使CBAlignTextView看起来更加工整,建议将中文符号用英文符号替换(默认不转换),可以通过以下三种方式转化

 

使用转化函数转化标点符号:

CBAlignTextViewUtil.replacePunctuation(String text)

 

在设置CBAlignTextView文本前(setText),调用以下方法:

setPunctuationConvert(boolean convert)

可以直接在xml布局中进行设置

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:cb="http://schemas.android.com/apk/res-auto"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical">        <me.codeboy.android.aligntextview.CBAlignTextView              android:id="@+id/cbAlignTextView"              android:layout_width="match_parent"              android:layout_height="wrap_content"              cb:punctuationConvert="true"              android:textIsSelectable="true"              android:textSize="14dsp"/>      </LinearLayout>

 

2.AlignTextView

 

AlignTextView是旧的版本,不支持选择复制,但是可以自定义最后一行的对齐方式

 

setAlign(Align align)

设置每一段最后一行对齐方式,默认居左对齐 ,同时也可以在xml注释中设置对其方式:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"            xmlns:cb="http://schemas.android.com/apk/res-auto"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical">            <me.codeboy.android.aligntextview.AlignTextView                  android:id="@+id/alignTextView"                  android:layout_width="match_parent"                  android:layout_height="wrap_content"                  cb:align="center"                  android:textSize="14dsp"/>          </LinearLayout>

 

使用说明

 

不用进行选择复制的时候使用 AlignTextView,需要进行选择复制的时候使用CBAlignTextView。

AlignTextView与CBAlignTextView在对齐的时候不会对英文单词等进行考虑,它们都是以字符(character)为基础的,不是词(word)。

使用CBAlignTextView时建议进行中文标点的转换。

demo项目位与app下,可以单独提取出me.codeboy.android.aligntextview.AlignTextView和me.codeboy.android.aligntextview.CBAlignTextView使用。

Status API Training Shop Blog About Pricing

 

项目地址: https://github.com/androiddevelop/AlignTextView