注册
UI

安卓选择器类库-AndroidPicker

示例图:

1978dc25fb103c8d5e0665afb2a9fb57.gif5c13e4fe09972510cb84895b198a019c.gif2716c0c2ec3527a3a80fcc9771f7bc06.jpg16dd24432c8e96d272ffff12d8595ff5.gif5ef0920c0b6f38183916cf4a69680171.gif09fccd0c030a3f87f3aee1933c4afb76.png532073f0b19a097c23367572e0f9c116.gif7522e93d6ea3503305182c430ba82ca5.jpg7cb9d7111c33db4148f560d39e624231.jpg6aa52b94445a232169f95bb1ab70ff79.gif7ee7c3413cc624adb123b011acb5c92e.gif0d4ecf8ccab7001e64fcaea5a441fb86.gif


AndroidPicker

安卓选择器类库,包括日期及时间选择器(可设置范围)、单项选择器(可用于性别、职业、学历、星座等)、城市地址选择器(分省级、地级及县级)、数字选择器(可用于年龄、身高、体重、温度等)、双项选择器、颜色选择器、文件及目录选择器等……

Install

“app”是测试用例;“library”包括WheelPicker、ColorPicker、FilePicker、MultiplePicker, WheelPicker包括DatePicker、TimePicker、OptionPicker、LinkagePicker、AddressPicker、NumberPicker、DoublePicker等。 其中WheelPicker、FilePicker及ColorPicker是独立的,需要用哪个就只依赖哪个,

 具体步骤如下: 第一步,在项目根目录下的build.gradle里加:

repositories {
maven {
url "https://jitpack.io"
}
}

第二步,在项目的app模块下的build.gradle里加: 滚轮选择器:

dependencies {
implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:版本号'
}

文件目录选择器:

dependencies {
implementation 'com.github.gzu-liyujiang.AndroidPicker:FilePicker:版本号'
}

颜色选择器:

dependencies {
implementation 'com.github.gzu-liyujiang.AndroidPicker:ColorPicker:版本号'
}

注:Support版本截止1.5.6,从2.0.0开始为AndroidX版本。

Support版本依赖:

dependencies {
implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:1.5.6.20181018'
}

AndroidX版本依赖:

dependencies {
implementation 'com.github.gzu-liyujiang.AndroidPicker:Common:2.0.0'
implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:2.0.0'
}

ProGuard

由于地址选择器使用了fastjson来解析,混淆时候需要加入以下类似的规则,不混淆Province、City等实体类。

-keepattributes InnerClasses,Signature
-keepattributes *Annotation*

-keep class cn.qqtheme.framework.entity.** { *;}

Sample (更多用法详见示例项目)

各种设置方法:

picker.setXXX(...);

如:
设置选项偏移量,可用来要设置显示的条目数,范围为1-5,1显示3行、2显示5行、3显示7行……

picker.setOffset(...);

设置启用循环

picker.setCycleDisable(false);

设置每项的高度,范围为2-4

picker.setLineSpaceMultiplier(...);
picker.setItemHeight(...);

设置文字颜色、字号、字体等

picker.setTextColor(...);
picker.setTextSize(...);
picker.setTextPadding(...);
picker.setTextSizeAutoFit(...);
picker.setTypeface(...);

设置单位标签

picker.setLabel(...);
picker.setOnlyShowCenterLabel(...))

设置默认选中项

picker.setSelectedItem(...);
picker.setSelectedIndex(...);

设置滚轮项填充宽度,分割线最长

picker.setUseWeight(true);
picker.setDividerRatio(WheelView.DividerConfig.FILL);

设置触摸弹窗外面是否自动关闭

picker.setCanceledOnTouchOutside(...);

设置分隔线配置项,设置null将隐藏分割线及阴影

picker.setDividerConfig(...);
picker.setDividerColor(...);
picker.setDividerRatio(...);
picker.setDividerVisible(...);

设置内容边距

picker.setContentPadding(...);

设置选中项背景色

picker.setShadowColor(...)

自定义顶部及底部视图

picker.setHeaderView(...);
picker.setFooterView(...);

获得内容视图(不要调用picker.show()方法),可以将其加入到其他容器视图(如自定义的Dialog的视图)中

picker.getContentView();

获得按钮视图(需要先调用picker.show()方法),可以调用该视图相关方法,如setVisibility()

picker.getCancelButton();
picker.getSubmitButton();

自定义选择器示例:

        CustomHeaderAndFooterPicker picker = new CustomHeaderAndFooterPicker(this);
picker.setOnOptionPickListener(new OptionPicker.OnOptionPickListener() {
@Override
public void onOptionPicked(int position, String option) {
showToast(option);
}
});
picker.show();

核心滚轮控件为WheelView,可以参照SinglePicker、DateTimePicker及LinkagePicker自行扩展。


代码下载:AndroidPicker-master.zip

原文链接:https://github.com/gzu-liyujiang/AndroidPicker

0 个评论

要回复文章请先登录注册