Android NumberPicker控件修改分割线颜色及字体颜色大小
2015-12-09 17:16
856 查看
(1)重写NumberPicker已达到修改显示字体颜色大小
(2)修改分割线颜色,需要在初始化控件后,通过反射进行动态设置颜色。
**********注意:在NumberPicker 的 setDisplayedValues调用后调用如下方法:
(3)使用NumberPicker 注意:
(4) List 转换为 Array[], 以便NumberPicker设置setDisplayedValues(String[]):
连接:http://my.oschina.net/yaly/blog/532153
public class TextColorNumberPicker extends NumberPicker { public TextColorNumberPicker(Context context) { super(context); } public TextColorNumberPicker(Context context, AttributeSet attrs) { super(context, attrs); } public TextColorNumberPicker(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public void addView(View child) { super.addView(child); updateView(child); } @Override public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) { super.addView(child, index, params); updateView(child); } @Override public void addView(View child, android.view.ViewGroup.LayoutParams params) { super.addView(child, params); updateView(child); } public void updateView(View view) { if (view instanceof EditText) { //这里修改显示字体的属性,主要修改颜色 ((EditText) view).setTextColor(Color.parseColor("#BAA785")); } } }
(2)修改分割线颜色,需要在初始化控件后,通过反射进行动态设置颜色。
**********注意:在NumberPicker 的 setDisplayedValues调用后调用如下方法:
private void setNumberPickerDividerColor(NumberPicker numberPicker) { NumberPicker picker = numberPicker; Field[] pickerFields = NumberPicker.class.getDeclaredFields(); for (Field pf : pickerFields) { if (pf.getName().equals("mSelectionDivider")) { pf.setAccessible(true); try { //设置分割线的颜色值 透明 pf.set(picker, new ColorDrawable(this.getResources().getColor(android.R.color.transparent))); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (Resources.NotFoundException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } break; } } }
(3)使用NumberPicker 注意:
// 禁止点击后打开键盘 picker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); // 设置最大值、最小值 已达到显示所有符合条件的数值 picker.setMaxValue(array.length - 1); picker.setMinValue(0);
(4) List 转换为 Array[], 以便NumberPicker设置setDisplayedValues(String[]):
String[] array = new String[list.size()]; list.toArray(array);
连接:http://my.oschina.net/yaly/blog/532153
相关文章推荐
- Android Studio Moudle找不到R.java文件
- 呈现怎样的香蕉饼路线Android系统
- Android 答题系统源码,答题demo(第六周)
- Android自定义控件
- Android Fragment 真正的完全解析(上)
- Android Bitmap 与 Drawable之间的区别和转换
- Android 蓝牙4.0 BLE
- Android 通过工具类查询MIME打开各种文件的方法
- 小数据键值对的保存方式
- SEAndroid策略分析(三):类型强制和角色声明
- Android程序反编译、签名详解、打包
- Android 中获取 debug 测试 SHA1 和 release SHA1 证书指纹数据的方法
- 【签名】4.2.2系统不能安装引出的签名问题
- SEAndroid策略分析(一):概述SEAndroid
- Android获取当前屏幕截图,简单粗暴!
- Android电源管理-休眠简要分析
- android studi0加载so文件
- Android Animation学习笔记
- Android 防止连续点击的方法
- Android内置下拉刷新组件SwipeRefreshLayout