Skip to content

Commit d67b91f

Browse files
committed
修复日期时间选择联动适时取值不对问题;
支持设置选中项的背景色及透明度; 增加港澳台的县级城市数据;
1 parent 7e39ad6 commit d67b91f

10 files changed

Lines changed: 339 additions & 166 deletions

File tree

ChangeLog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
### v1.5.1 - 2017.05.03
2+
日期时间选择器支持设置各项平分布局;
3+
顶部按钮文字颜色默认调整为青蓝风格;
4+
修复日期时间选择联动适时取值不对问题;
5+
支持设置选中项的背景色及透明度;
6+
增加港澳台的县级城市数据;
17
### v1.5.0 - 2017.05.01
28
基于View重构WheelView;
39
联动选择器支持直接传入对象;
10+
动画默认为500毫秒,应该不会太慢了;
411
### v1.4.6 - 2017.04.10
512
弹窗内部部分代码重构;
613
使用透明渐变位移动画,缓解初始化时默认选中项显示跳动问题;

app/src/main/assets/city.json

Lines changed: 224 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14028,24 +14028,236 @@
1402814028
"areaName": "其他",
1402914029
"cities": [
1403014030
{
14031-
"areaId": "700001",
14032-
"areaName": "香港"
14033-
},
14034-
{
14035-
"areaId": "700002",
14036-
"areaName": "澳门"
14031+
"areaId": "800000",
14032+
"areaName": "台湾",
14033+
"counties": [
14034+
{
14035+
"areaId": "800001",
14036+
"areaName": "台北市"
14037+
},
14038+
{
14039+
"areaId": "800002",
14040+
"areaName": "高雄市"
14041+
},
14042+
{
14043+
"areaId": "800003",
14044+
"areaName": "台北县"
14045+
},
14046+
{
14047+
"areaId": "800004",
14048+
"areaName": "桃园县"
14049+
},
14050+
{
14051+
"areaId": "800005",
14052+
"areaName": "新竹县"
14053+
},
14054+
{
14055+
"areaId": "800006",
14056+
"areaName": "苗栗县"
14057+
},
14058+
{
14059+
"areaId": "800007",
14060+
"areaName": "台中县"
14061+
},
14062+
{
14063+
"areaId": "800008",
14064+
"areaName": "彰化县"
14065+
},
14066+
{
14067+
"areaId": "800009",
14068+
"areaName": "南投县"
14069+
},
14070+
{
14071+
"areaId": "800010",
14072+
"areaName": "云林县"
14073+
},
14074+
{
14075+
"areaId": "800011",
14076+
"areaName": "嘉义县"
14077+
},
14078+
{
14079+
"areaId": "800012",
14080+
"areaName": "台南县"
14081+
},
14082+
{
14083+
"areaId": "800013",
14084+
"areaName": "高雄县"
14085+
},
14086+
{
14087+
"areaId": "800014",
14088+
"areaName": "屏东县"
14089+
},
14090+
{
14091+
"areaId": "800015",
14092+
"areaName": "宜兰县"
14093+
},
14094+
{
14095+
"areaId": "800016",
14096+
"areaName": "花莲县"
14097+
},
14098+
{
14099+
"areaId": "800017",
14100+
"areaName": "台东县"
14101+
},
14102+
{
14103+
"areaId": "800018",
14104+
"areaName": "澎湖县"
14105+
},
14106+
{
14107+
"areaId": "800019",
14108+
"areaName": "基隆市"
14109+
},
14110+
{
14111+
"areaId": "800020",
14112+
"areaName": "新竹市"
14113+
},
14114+
{
14115+
"areaId": "800021",
14116+
"areaName": "台中市"
14117+
},
14118+
{
14119+
"areaId": "800022",
14120+
"areaName": "嘉义市"
14121+
},
14122+
{
14123+
"areaId": "800023",
14124+
"areaName": "台南市"
14125+
},
14126+
{
14127+
"areaId": "800024",
14128+
"areaName": "其他"
14129+
}
14130+
]
1403714131
},
1403814132
{
14039-
"areaId": "700003",
14040-
"areaName": "台湾"
14133+
"areaId": "810000",
14134+
"areaName": "香港",
14135+
"counties": [
14136+
{
14137+
"areaId": "810001",
14138+
"areaName": "中西区"
14139+
},
14140+
{
14141+
"areaId": "810002",
14142+
"areaName": "湾仔区"
14143+
},
14144+
{
14145+
"areaId": "810003",
14146+
"areaName": "东区"
14147+
},
14148+
{
14149+
"areaId": "810004",
14150+
"areaName": "南区"
14151+
},
14152+
{
14153+
"areaId": "810005",
14154+
"areaName": "油尖旺区"
14155+
},
14156+
{
14157+
"areaId": "810006",
14158+
"areaName": "深水埗区"
14159+
},
14160+
{
14161+
"areaId": "810007",
14162+
"areaName": "九龙城区"
14163+
},
14164+
{
14165+
"areaId": "810008",
14166+
"areaName": "黄大仙区"
14167+
},
14168+
{
14169+
"areaId": "810009",
14170+
"areaName": "观塘区"
14171+
},
14172+
{
14173+
"areaId": "810010",
14174+
"areaName": "荃湾区"
14175+
},
14176+
{
14177+
"areaId": "810011",
14178+
"areaName": "屯门区"
14179+
},
14180+
{
14181+
"areaId": "810012",
14182+
"areaName": "元朗区"
14183+
},
14184+
{
14185+
"areaId": "810013",
14186+
"areaName": "北区"
14187+
},
14188+
{
14189+
"areaId": "810014",
14190+
"areaName": "大埔区"
14191+
},
14192+
{
14193+
"areaId": "810015",
14194+
"areaName": "西贡区"
14195+
},
14196+
{
14197+
"areaId": "810016",
14198+
"areaName": "沙田区"
14199+
},
14200+
{
14201+
"areaId": "810017",
14202+
"areaName": "葵青区"
14203+
},
14204+
{
14205+
"areaId": "810018",
14206+
"areaName": "离岛区"
14207+
}
14208+
]
1404114209
},
1404214210
{
14043-
"areaId": "700004",
14044-
"areaName": "海外"
14211+
"areaId": "820000",
14212+
"areaName": "澳门",
14213+
"counties": [
14214+
{
14215+
"areaId": "820001",
14216+
"areaName": "花地玛堂区"
14217+
},
14218+
{
14219+
"areaId": "820002",
14220+
"areaName": "花王堂区"
14221+
},
14222+
{
14223+
"areaId": "820003",
14224+
"areaName": "望德堂区"
14225+
},
14226+
{
14227+
"areaId": "820004",
14228+
"areaName": "大堂区"
14229+
},
14230+
{
14231+
"areaId": "820005",
14232+
"areaName": "风顺堂区"
14233+
},
14234+
{
14235+
"areaId": "820006",
14236+
"areaName": "嘉模堂区"
14237+
},
14238+
{
14239+
"areaId": "820007",
14240+
"areaName": "路凼填海区"
14241+
},
14242+
{
14243+
"areaId": "820008",
14244+
"areaName": "圣方济各堂区"
14245+
}
14246+
]
1404514247
},
1404614248
{
14047-
"areaId": "700005",
14048-
"areaName": "钓鱼岛"
14249+
"areaId": "830000",
14250+
"areaName": "海外",
14251+
"counties": [
14252+
{
14253+
"areaId": "830001",
14254+
"areaName": "海外"
14255+
},
14256+
{
14257+
"areaId": "830002",
14258+
"areaName": "钓鱼岛是中国的"
14259+
}
14260+
]
1404914261
}
1405014262
]
1405114263
}

app/src/main/java/cn/qqtheme/androidpicker/MainActivity.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.qqtheme.androidpicker;
22

33
import android.content.Intent;
4+
import android.graphics.Color;
45
import android.net.Uri;
56
import android.view.Gravity;
67
import android.view.View;
@@ -59,9 +60,9 @@ public void onNestView(View view) {
5960

6061
public void onAnimationStyle(View view) {
6162
final NumberPicker picker = new NumberPicker(this);
62-
picker.setItemWidth(300);
63+
picker.setItemWidth(200);
6364
View headerView = View.inflate(activity, R.layout.picker_header, null);
64-
TextView titleView = (TextView) headerView.findViewById(R.id.picker_title);
65+
final TextView titleView = (TextView) headerView.findViewById(R.id.picker_title);
6566
titleView.setText("自定义顶部视图");
6667
headerView.findViewById(R.id.picker_close).setOnClickListener(new View.OnClickListener() {
6768
@Override
@@ -76,10 +77,10 @@ public void onClick(View v) {
7677
picker.setRange(10.5, 20, 1.5);//数字范围
7778
picker.setSelectedItem(18.0);
7879
picker.setLabel("℃");
79-
picker.setOnNumberPickListener(new NumberPicker.OnNumberPickListener() {
80+
picker.setOnWheelListener(new NumberPicker.OnWheelListener() {
8081
@Override
81-
public void onNumberPicked(int index, Number item) {
82-
showToast("index=" + index + ", item=" + item.doubleValue());
82+
public void onWheeled(int index, Number item) {
83+
titleView.setText(String.valueOf(item.floatValue()));
8384
}
8485
});
8586
picker.show();
@@ -101,6 +102,7 @@ public void onOptionPicked(int position, String option) {
101102
public void onYearMonthDayPicker(View view) {
102103
final DatePicker picker = new DatePicker(this);
103104
picker.setCanceledOnTouchOutside(true);
105+
picker.setUseWeight(true);
104106
picker.setTopPadding(ConvertUtils.toPx(this, 20));
105107
picker.setRangeStart(2016, 8, 29);
106108
picker.setRangeEnd(2111, 1, 11);
@@ -201,6 +203,7 @@ public void onOptionPicker(View view) {
201203
});
202204
picker.setCanceledOnTouchOutside(false);
203205
picker.setDividerRatio(WheelView.DividerConfig.FILL);
206+
picker.setShadowColor(Color.RED, 40);
204207
picker.setSelectedIndex(1);
205208
picker.setCycleDisable(true);
206209
picker.setTextSize(11);
@@ -276,15 +279,15 @@ public void onConstellationPicker(View view) {
276279
});
277280
picker.setCycleDisable(false);//不禁用循环
278281
picker.setTopBackgroundColor(0xFFEEEEEE);
279-
picker.setTopHeight(50);
280-
picker.setTopLineColor(0xFF33B5E5);
282+
picker.setTopHeight(30);
283+
picker.setTopLineColor(0xFFEE0000);
281284
picker.setTopLineHeight(1);
282285
picker.setTitleText(isChinese ? "请选择" : "Please pick");
283286
picker.setTitleTextColor(0xFF999999);
284287
picker.setTitleTextSize(12);
285-
picker.setCancelTextColor(0xFF33B5E5);
288+
picker.setCancelTextColor(0xFFEE0000);
286289
picker.setCancelTextSize(13);
287-
picker.setSubmitTextColor(0xFF33B5E5);
290+
picker.setSubmitTextColor(0xFFEE0000);
288291
picker.setSubmitTextSize(13);
289292
picker.setTextColor(0xFFEE0000, 0xFF999999);
290293
WheelView.DividerConfig config = new WheelView.DividerConfig();

library/WheelPicker/src/main/java/cn/qqtheme/framework/picker/AddressPicker.java

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -133,37 +133,22 @@ protected View makeCenterView() {
133133
layout.setOrientation(LinearLayout.HORIZONTAL);
134134
layout.setGravity(Gravity.CENTER);
135135

136-
final WheelView provinceView = new WheelView(activity);
136+
final WheelView provinceView = createWheelView();
137137
provinceView.setUseWeight(true);
138138
provinceView.setLayoutParams(new LinearLayout.LayoutParams(0, WRAP_CONTENT, provinceWeight));
139-
provinceView.setTextSize(textSize);
140-
provinceView.setTextColor(textColorNormal, textColorFocus);
141-
provinceView.setDividerConfig(dividerConfig);
142-
provinceView.setOffset(offset);
143-
provinceView.setCycleDisable(cycleDisable);
144139
layout.addView(provinceView);
145140
if (hideProvince) {
146141
provinceView.setVisibility(View.GONE);
147142
}
148143

149-
final WheelView cityView = new WheelView(activity);
144+
final WheelView cityView = createWheelView();
150145
cityView.setUseWeight(true);
151146
cityView.setLayoutParams(new LinearLayout.LayoutParams(0, WRAP_CONTENT, cityWeight));
152-
cityView.setTextSize(textSize);
153-
cityView.setTextColor(textColorNormal, textColorFocus);
154-
cityView.setDividerConfig(dividerConfig);
155-
cityView.setOffset(offset);
156-
cityView.setCycleDisable(cycleDisable);
157147
layout.addView(cityView);
158148

159-
final WheelView countyView = new WheelView(activity);
149+
final WheelView countyView = createWheelView();
160150
countyView.setUseWeight(true);
161151
countyView.setLayoutParams(new LinearLayout.LayoutParams(0, WRAP_CONTENT, countyWeight));
162-
countyView.setTextSize(textSize);
163-
countyView.setTextColor(textColorNormal, textColorFocus);
164-
countyView.setDividerConfig(dividerConfig);
165-
countyView.setOffset(offset);
166-
countyView.setCycleDisable(cycleDisable);
167152
layout.addView(countyView);
168153
if (hideCounty) {
169154
countyView.setVisibility(View.GONE);

0 commit comments

Comments
 (0)