Skip to content

Commit 4ae0ce7

Browse files
author
yuedong
committed
加入CBAlignTextView
1 parent 2b18f13 commit 4ae0ce7

16 files changed

Lines changed: 574 additions & 1399 deletions

File tree

.idea/workspace.xml

Lines changed: 338 additions & 1259 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,55 @@
11
# AlignTextView
22
字体对齐的textview
33

4-
![截图](./align-text-view-small.png)
4+
![截图](./screenshot-small.png)
55

6-
###系统要求
6+
## 系统要求
77
Android 4.0以上
88

9-
### 快速使用
10-
<cn.androiddevelop.aligntextview.lib.AlignTextView
9+
## 快速使用
10+
** CBAlignTextView (新的版本,支持选择复制,排版效果也比较的好) **
11+
12+
<me.codeboy.android.lib.CBAlignTextView
13+
android:id="@+id/cbAlignTv"
14+
android:textIsSelectable="true"
15+
android:layout_width="match_parent"
16+
android:layout_height="wrap_content"/>
17+
18+
19+
如果需要支持android默认的选择复制,请在xml中加入以下代码:
20+
21+
android:textIsSelectable="true"
22+
23+
24+
25+
**AlignTextView (旧的版本,不支持选择复制,但是排版效果更好)**
26+
27+
<me.codeboy.android.lib.AlignTextView
1128
android:id="@+id/alignTv"
1229
android:layout_width="match_parent"
13-
android:layout_height="wrap_content"
14-
android:textSize="@dimen/small_font" />
30+
android:layout_height="wrap_content"/>
31+
32+
## 相关方法
33+
CBAlignTextView中增加了以下方法获取TextView的文本内容,请不要使用getText()获取
34+
35+
getRealText()
36+
37+
AlignTextView是旧的版本,不支持选择复制,但是可以自定义最后一行的对齐方式
1538

16-
### 相关方法
1739
setAlign(Align align)
1840
设置每一段最后一行对齐方式,默认居左对齐
1941

2042

21-
### 使用说明
22-
- AlignTextView在对齐的时候不会对英文单词等进行考虑,使其连在一起。
23-
- 项目位与app下,可以单独提取出cn.androiddevelop.aligntextview.lib.AlignTextView使用
43+
## 使用说明
44+
1. 强烈建议使用CBAlignTextView而不是AlignTextView。
45+
2. AlignTextView与CBAlignTextView在对齐的时候不会对英文单词等进行考虑,它们都是以字符(character)为基础的,不是词(word)。
46+
3. demo项目位与app下,可以单独提取出me.codeboy.android.lib.AlignTextView和me.codeboy.android.lib.CBAlignTextView使用
47+
48+
## 更新历史
49+
50+
###2.0
51+
1. 加入CBAlignTextView,支持原生TextView的选择复制。
52+
2. 修改包名(域名更换了,欢迎访问<http://codeboy.me>)
2453

25-
### 更新历史
26-
####1.1
27-
修正由于对齐造成textview行数减少,从而下方留出空白。
54+
###1.1
55+
1. 修正由于对齐造成AlignTextView行数减少,从而下方留出空白。

align-text-view-small.png

-78.4 KB
Binary file not shown.

align-text-view.png

-135 KB
Binary file not shown.

aligntextview-example/aligntextview-example.iml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@
8989
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
9090
<orderEntry type="sourceFolder" forTests="false" />
9191
<orderEntry type="library" exported="" name="appcompat-v7-22.1.1" level="project" />
92+
<orderEntry type="library" exported="" name="asm-4.2" level="project" />
93+
<orderEntry type="library" exported="" name="cglib-3.1" level="project" />
9294
<orderEntry type="library" exported="" name="support-v4-22.1.1" level="project" />
9395
<orderEntry type="library" exported="" name="support-annotations-22.1.1" level="project" />
9496
<orderEntry type="module" module-name="aligntextview-library" exported="" />

aligntextview-example/build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,17 @@ android {
1717
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1818
}
1919
}
20+
21+
sourceSets {
22+
main {
23+
jniLibs.srcDirs = ['libs']
24+
}
25+
}
2026
}
2127

2228
dependencies {
2329
compile fileTree(dir: 'libs', include: ['*.jar'])
2430
compile 'com.android.support:appcompat-v7:22.1.1'
2531
compile project (':aligntextview-library')
32+
compile 'cglib:cglib:3.1'
2633
}

aligntextview-example/src/main/AndroidManifest.xml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="cn.androiddevelop.aligntextview.example">
1+
<manifest package="cn.androiddevelop.aligntextview.example"
2+
xmlns:android="http://schemas.android.com/apk/res/android">
33

4-
<application android:allowBackup="true" android:label="@string/app_name"
5-
android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">
6-
<activity android:name=".AlignTextViewExample" >
4+
<application
5+
android:allowBackup="true"
6+
android:icon="@mipmap/ic_launcher"
7+
android:label="@string/app_name"
8+
android:theme="@style/AppTheme">
9+
<activity
10+
android:name="me.codeboy.android.example.AlignTextViewExample">
711
<intent-filter>
8-
<action android:name="android.intent.action.MAIN" />
9-
<category android:name="android.intent.category.LAUNCHER" />
12+
<action android:name="android.intent.action.MAIN"/>
13+
<category android:name="android.intent.category.LAUNCHER"/>
1014
</intent-filter>
1115
</activity>
1216

aligntextview-example/src/main/java/cn/androiddevelop/aligntextview/example/AlignTextViewExample.java

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package me.codeboy.android.example;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.view.Window;
6+
import android.view.WindowManager;
7+
import android.widget.TextView;
8+
9+
import cn.androiddevelop.aligntextview.example.R;
10+
11+
/**
12+
* AlignTextView例子
13+
*
14+
* @author YD
15+
*/
16+
public class AlignTextViewExample extends Activity {
17+
18+
TextView textViewTv;
19+
TextView alignTv;
20+
TextView justifyTv;
21+
TextView cbalignTv;
22+
23+
@Override
24+
protected void onCreate(Bundle savedInstanceState) {
25+
super.onCreate(savedInstanceState);
26+
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
27+
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
28+
WindowManager.LayoutParams.FLAG_FULLSCREEN);
29+
setContentView(R.layout.activity_align_text_view);
30+
31+
textViewTv = (TextView) findViewById(R.id.textview);
32+
justifyTv = (TextView) findViewById(R.id.justifyTextView);
33+
alignTv = (TextView) findViewById(R.id.alignTextView);
34+
cbalignTv = (TextView) findViewById(R.id.cbAlignTextView);
35+
36+
String text = "这是一段中英文混合的文本,I am very happy today. aaaaaaaaaa,测试TextView文本对齐\n\nAlignTextView可以通过setAlign()方法设置每一段尾行的对齐方式,默认尾行居左对齐.CBAlignTextView可以像原生TextView一样操作,但是需要使用getRealText()获取文本,欢迎访问open.codeboy.me";
37+
textViewTv.setText(text);
38+
justifyTv.setText(text);
39+
alignTv.setText(text);
40+
cbalignTv.setText(text);
41+
}
42+
}

aligntextview-example/src/main/java/test/NewTextView.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)