Android-PickerView 三级联动选择器的标题和内容的字体大小、颜色设置

来源:互联网 发布:linux current comm 编辑:程序博客网 时间:2024/05/16 11:53

Android-PickerView这个开源项目已经转交给我负责继续维护,目前我已经更新优化一部分,填补了一些不足之处,推出了3.x新版本,使用起来更加灵活方便,定制性更强。欢迎提Issue ,Pull Request

更新时间:2017-2-24日

以下是去年在使用2.1.1版本遇到的问题,目前2.x版本我已经分支出去,停止更新。推出了3.x版本。

——————————————————————————————————————————————————————————————————————————————————————

最近项目中使用了Android-PickerView这个开源项目,用来做省市区三级联动选择器,感觉项目中有些地方处理得不是蛮恰当,自己做了下改动记录一下。
原项目GitHub地址:https://github.com/saiwu-bigkoo/Android-PickerView.git

项目的默认效果:

这里写图片描述

用过这个项目的朋友想必会发现,默认的选择器字体大小好像偏大了点,那么要改小一点怎么办? 找来找去,发现OptionsPickerView 类中,只有一个标题可设置,那么标题的字体大小,以及确定,取消按钮,还有内容的字体大小该怎么设置呢?

想了想,第一个方法是,把该项目源代码拷贝到自己项目中去应用,根据自己的需求修改其布局文件和源码逻辑等,问题便解决了。

第二个方法是:通过在自己的项目中覆写依赖项目的XML文件,来替换控件所引用的属性值。步骤如下:
(开发工具 Android Studio)
1.找到依赖的项目,打开res-layout布局目录,找到选择器的布局文件pickerview_options.xml:
res-layout

pickerview_options.xml

点击选择器中所引用的属性值,会自动跳转到values-values文件里,发现dimens 属性分别是这样的:

<dimen name="pickerview_textsize">20sp</dimen><!--选择器的内容文字大小--><dimen name="pickerview_topbar_btn_textsize">20sp</dimen><!--选择器确定和取消按钮的文字大小--><dimen name="pickerview_topbar_height">44dp</dimen><!--选择器的标题栏高度--><dimen name="pickerview_topbar_title_textsize">21sp</dimen><!--标题字体大小--><color name="pickerview_topbar_title">#000000</color><!--标题字体颜色--><color name="pickerview_timebtn_nor">#057dff</color><!--按钮未点击状态颜色--><color name="pickerview_timebtn_pre">#c2daf5</color><!--按钮点击状态颜色-->

找到这些属性之后,将其复制到自己项目的 values-dimens 文件中,然后修改想要实现的值就行了,另外在values目录下,创建一个 bools.xml 文件,加上这个属性,属性值填true:
<bool name="pickerview_customTextSize">true</bool>
,完成后,编译运行一次,发现大功告成。
修改后的效果如下:

这里写图片描述

字体没那么大了
顺便补充一下原项目中没有考虑到的,已经弹出选择框的情况下,点击系统返回键没有 dismiss的小bug:

    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK) {            if (pvOptions!=null&&pvOptions.isShowing()) {//对象不为空且已经显示                pvOptions.dismiss();                return true;            }        }        return super.onKeyDown(keyCode, event);    }
3 0
原创粉丝点击