Skip to content

Commit 936f575

Browse files
author
imkarl
committed
Update version v0.2.6: fix max text size
1 parent 318f611 commit 936f575

File tree

11 files changed

+106
-66
lines changed

11 files changed

+106
-66
lines changed

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,17 @@ repositories {
3636
- Step 2. 在你的app build.gradle 的 dependencies 中添加依赖
3737
```
3838
dependencies {
39-
compile 'com.github.imkarl:CharacterPickerView:v0.2.5'
39+
compile 'com.github.imkarl:CharacterPickerView:v0.2.6'
4040
}
4141
```
4242

4343
## ChangeLog
4444

45+
#### 0.2.6
46+
- 修复某些情况下,字体会变得非常大的bug
47+
- 新增setMaxTextSize():用于限制字体最大值
48+
- 升级编译工具版本
49+
4550
#### 0.2.5
4651
- 修复setSelectOptions()无效的bug
4752
- 修复CharacterPickerWindow弹出时,可以点击到Activity中Button的bug

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
buildscript {
44
repositories {
5+
google()
56
jcenter()
67
}
78
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.3.3'
9+
classpath 'com.android.tools.build:gradle:3.1.3'
910

1011
// NOTE: Do not place your application dependencies here; they belong
1112
// in the individual module build.gradle files
@@ -14,6 +15,7 @@ buildscript {
1415

1516
allprojects {
1617
repositories {
18+
google()
1719
jcenter()
1820
}
1921
}

demo/build.gradle

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 25
5-
buildToolsVersion "26.0.1"
4+
compileSdkVersion 27
65

76
defaultConfig {
87
applicationId "cn.jeesoft.demo"
9-
minSdkVersion 11
8+
minSdkVersion 14
109
targetSdkVersion 24
11-
versionCode 24
12-
versionName "0.2.5"
10+
versionCode 26
11+
versionName "0.2.6"
1312
}
1413
buildTypes {
1514
release {
@@ -21,6 +20,6 @@ android {
2120

2221
dependencies {
2322
compile fileTree(dir: 'libs', include: ['*.jar'])
24-
compile 'com.android.support:appcompat-v7:25.1.0'
23+
compile 'com.android.support:appcompat-v7:27.1.1'
2524
compile project(':library')
2625
}

demo/src/main/java/cn/jeesoft/demo/ArrayDataDemo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.Random;
99

1010
/**
11-
* @version 0.1 king 2015-11
11+
* @author imkarl
1212
*/
1313
public class ArrayDataDemo {
1414

demo/src/main/java/cn/jeesoft/demo/MainActivity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ private void showView() {
3535
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
3636

3737
CharacterPickerView pickerView = new CharacterPickerView(this);
38+
//pickerView.setMaxTextSize(28);
3839
layout.addView(pickerView, layoutParams);
3940

4041
//初始化选项数据

demo/src/main/java/cn/jeesoft/demo/OptionsWindowHelper.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@
1414

1515
/**
1616
* 地址选择器
17-
*
18-
* @version 0.1 king 2015-10
19-
* @version 0.2 imkarl 2017-9
17+
* @author imkarl
2018
*/
2119
public class OptionsWindowHelper {
2220

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Mon Sep 05 10:46:50 CST 2016
1+
#Mon Jun 25 11:31:45 CST 2018
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

library/build.gradle

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
apply plugin: 'com.android.library'
22

33
android {
4-
compileSdkVersion 25
5-
buildToolsVersion "26.0.1"
4+
compileSdkVersion 27
65

76
defaultConfig {
87
minSdkVersion 11
98
targetSdkVersion 24
10-
versionCode 25
11-
versionName "0.2.5"
9+
versionCode 26
10+
versionName "0.2.6"
1211
}
1312
buildTypes {
1413
release {
@@ -17,7 +16,3 @@ android {
1716
}
1817
}
1918
}
20-
21-
dependencies {
22-
compile fileTree(dir: 'libs', include: ['*.jar'])
23-
}

library/src/main/java/cn/jeesoft/widget/pickerview/CharacterPickerView.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,11 @@ public void setOnOptionChangedListener(OnOptionChangedListener listener) {
120120
this.wheelOptions.setOnOptionChangedListener(listener);
121121
}
122122

123+
/**
124+
* 设置字体最大值
125+
*/
126+
public void setMaxTextSize(float dpValue) {
127+
this.wheelOptions.setMaxTextSize(dpValue);
128+
}
129+
123130
}

library/src/main/java/cn/jeesoft/widget/pickerview/WheelOptions.java

Lines changed: 60 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,17 @@
1414
*/
1515
final class WheelOptions {
1616
private final CharacterPickerView view;
17-
private LoopView wv_option1;
18-
private LoopView wv_option2;
19-
private LoopView wv_option3;
17+
private LoopView wvOption1;
18+
private LoopView wvOption2;
19+
private LoopView wvOption3;
2020

2121
private List<String> mOptions1Items;
2222
private List<List<String>> mOptions2Items;
2323
private List<List<List<String>>> mOptions3Items;
2424
private OnOptionChangedListener mOnOptionChangedListener;
2525

26+
private float maxTextSize;
27+
2628
public View getView() {
2729
return view;
2830
}
@@ -52,13 +54,13 @@ public void setPicker(List<String> options1Items,
5254
this.mOptions2Items = options2Items == null ? new ArrayList<List<String>>() : options2Items;
5355
this.mOptions3Items = options3Items == null ? new ArrayList<List<List<String>>>() : options3Items;
5456
// 选项1
55-
wv_option1 = (LoopView) view.findViewById(R.id.j_options1);
56-
wv_option1.setItems(mOptions1Items);// 设置显示数据
57+
wvOption1 = view.findViewById(R.id.j_options1);
58+
wvOption1.setItems(mOptions1Items);// 设置显示数据
5759
//设置是否循环播放
58-
wv_option1.setNotLoop();
60+
wvOption1.setNotLoop();
5961

6062
//滚动监听
61-
wv_option1.setListener(new OnItemSelectedListener() {
63+
wvOption1.setListener(new OnItemSelectedListener() {
6264
@Override
6365
public void onItemSelected(int index) {
6466
if (index == -1) {
@@ -69,19 +71,19 @@ public void onItemSelected(int index) {
6971
return;
7072
}
7173

72-
wv_option2.setItems(mOptions2Items.get(index));
73-
wv_option2.setCurrentPosition(0);
74+
wvOption2.setItems(mOptions2Items.get(index));
75+
wvOption2.setCurrentPosition(0);
7476
}
7577
});
7678

7779
// 选项2
78-
wv_option2 = (LoopView) view.findViewById(R.id.j_options2);
80+
wvOption2 = view.findViewById(R.id.j_options2);
7981
if (!mOptions2Items.isEmpty()) {
80-
wv_option2.setItems(mOptions2Items.get(0));// 设置显示数据
82+
wvOption2.setItems(mOptions2Items.get(0));// 设置显示数据
8183
//设置是否循环播放
82-
wv_option2.setNotLoop();
84+
wvOption2.setNotLoop();
8385
//滚动监听
84-
wv_option2.setListener(new OnItemSelectedListener() {
86+
wvOption2.setListener(new OnItemSelectedListener() {
8587
@Override
8688
public void onItemSelected(int index) {
8789
if (index == -1) {
@@ -92,38 +94,44 @@ public void onItemSelected(int index) {
9294
return;
9395
}
9496

95-
if (wv_option1.getSelectedItem() < mOptions3Items.size()) {
96-
List<List<String>> allItems3 = mOptions3Items.get(wv_option1.getSelectedItem());
97+
if (wvOption1.getSelectedItem() < mOptions3Items.size()) {
98+
List<List<String>> allItems3 = mOptions3Items.get(wvOption1.getSelectedItem());
9799
if (index >= allItems3.size()) {
98100
index = 0;
99101
}
100-
wv_option3.setItems(allItems3.get(index));
101-
wv_option3.setCurrentPosition(0);
102+
wvOption3.setItems(allItems3.get(index));
103+
wvOption3.setCurrentPosition(0);
102104
}
103105
}
104106
});
105107
}
106108

107109
// 选项3
108-
wv_option3 = (LoopView) view.findViewById(R.id.j_options3);
110+
wvOption3 = view.findViewById(R.id.j_options3);
109111
if (!mOptions3Items.isEmpty()) {
110-
wv_option3.setItems(mOptions3Items.get(0).get(0));// 设置显示数据
111-
wv_option3.setCurrentPosition(0);// 初始化时显示的数据
112+
wvOption3.setItems(mOptions3Items.get(0).get(0));// 设置显示数据
113+
wvOption3.setCurrentPosition(0);// 初始化时显示的数据
112114
//设置是否循环播放
113-
wv_option3.setNotLoop();
115+
wvOption3.setNotLoop();
114116
//滚动监听
115-
wv_option3.setListener(new OnItemSelectedListener() {
117+
wvOption3.setListener(new OnItemSelectedListener() {
116118
@Override
117119
public void onItemSelected(int index) {
118120
doItemChange();
119121
}
120122
});
121123
}
122124

123-
if (mOptions2Items.isEmpty())
125+
if (mOptions2Items.isEmpty()) {
124126
view.findViewById(R.id.j_layout2).setVisibility(View.GONE);
125-
if (mOptions3Items.isEmpty())
127+
}
128+
if (mOptions3Items.isEmpty()) {
126129
view.findViewById(R.id.j_layout3).setVisibility(View.GONE);
130+
}
131+
132+
if (maxTextSize > 0) {
133+
setMaxTextSize(maxTextSize);
134+
}
127135

128136
// 初始化时显示的数据
129137
setCurrentPositions(0, 0, 0);
@@ -134,9 +142,9 @@ public void onItemSelected(int index) {
134142
*/
135143
private void doItemChange() {
136144
if (mOnOptionChangedListener != null) {
137-
int option1 = wv_option1.getSelectedItem();
138-
int option2 = wv_option2.getSelectedItem();
139-
int option3 = wv_option3.getSelectedItem();
145+
int option1 = wvOption1.getSelectedItem();
146+
int option2 = wvOption2.getSelectedItem();
147+
int option3 = wvOption3.getSelectedItem();
140148
mOnOptionChangedListener.onOptionChanged(option1, option2, option3);
141149
}
142150
}
@@ -145,17 +153,17 @@ private void doItemChange() {
145153
* 设置是否循环滚动
146154
*/
147155
public void setCyclic(boolean cyclic) {
148-
wv_option1.setLoop(cyclic);
149-
wv_option2.setLoop(cyclic);
150-
wv_option3.setLoop(cyclic);
156+
wvOption1.setLoop(cyclic);
157+
wvOption2.setLoop(cyclic);
158+
wvOption3.setLoop(cyclic);
151159
}
152160

153161
@Deprecated
154162
public int[] getCurrentItems() {
155163
int[] currentItems = new int[3];
156-
currentItems[0] = wv_option1.getSelectedItem();
157-
currentItems[1] = wv_option2.getSelectedItem();
158-
currentItems[2] = wv_option3.getSelectedItem();
164+
currentItems[0] = wvOption1.getSelectedItem();
165+
currentItems[1] = wvOption2.getSelectedItem();
166+
currentItems[2] = wvOption3.getSelectedItem();
159167
return currentItems;
160168
}
161169

@@ -164,9 +172,9 @@ public int[] getCurrentItems() {
164172
*/
165173
public int[] getCurrentPositions() {
166174
int[] currentItems = new int[3];
167-
currentItems[0] = wv_option1.getSelectedItem();
168-
currentItems[1] = wv_option2.getSelectedItem();
169-
currentItems[2] = wv_option3.getSelectedItem();
175+
currentItems[0] = wvOption1.getSelectedItem();
176+
currentItems[1] = wvOption2.getSelectedItem();
177+
currentItems[2] = wvOption3.getSelectedItem();
170178
return currentItems;
171179
}
172180

@@ -181,14 +189,23 @@ public void setCurrentPositions(int option1, int option2, int option3) {
181189
option3 = 0;
182190
}
183191

184-
if (wv_option1.getSelectedItem() == -1) {
185-
wv_option1.setInitPosition(option1);
186-
wv_option2.setInitPosition(option2);
187-
wv_option3.setInitPosition(option3);
192+
if (wvOption1.getSelectedItem() == -1) {
193+
wvOption1.setInitPosition(option1);
194+
wvOption2.setInitPosition(option2);
195+
wvOption3.setInitPosition(option3);
188196
} else {
189-
wv_option1.setCurrentPosition(option1);
190-
wv_option2.setCurrentPosition(option2);
191-
wv_option3.setCurrentPosition(option3);
197+
wvOption1.setCurrentPosition(option1);
198+
wvOption2.setCurrentPosition(option2);
199+
wvOption3.setCurrentPosition(option3);
200+
}
201+
}
202+
203+
public void setMaxTextSize(float dpValue) {
204+
maxTextSize = dpValue;
205+
if (wvOption1 != null) {
206+
wvOption1.setMaxTextSize(dpValue);
207+
wvOption2.setMaxTextSize(dpValue);
208+
wvOption3.setMaxTextSize(dpValue);
192209
}
193210
}
194211
}

0 commit comments

Comments
 (0)