Android NumberPicker详细使用

 

 

1.普通使用

 

1.1.布局

                    

 

1.2.Java代码

/**     * Android NumberPicker     * */    private void initNumberPicker() {        NumberPicker numberPicker = findViewById(R.id.activity_main_testnumberpicker);        //设置最大值        numberPicker.setMaxValue(150);        //设置最小值        numberPicker.setMinValue(50);        //设置当前值        numberPicker.setValue(105);        //设置滑动监听        numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {            //当NunberPicker的值发生改变时,将会激发该方法            @Override            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {                String toast = "oldVal:" + oldVal + "   newVal:" + newVal;                Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();            }        });    }

 

1.3.效果

Android NumberPicker详细使用_第1张图片

 

 

 

 

 

2.自定义NumberPicker(设置字体颜色,字体大小,分割线颜色)

 

2.1.自定义View

public class MyNumberPicker extends NumberPicker {    /**     * 构造方法 NumberPicker     * */    public MyNumberPicker(Context context) {        super(context);    }    public MyNumberPicker(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyNumberPicker(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    /**     * addView方法 ViewGroup     * */    @Override    public void addView(View child) {        super.addView(child);        setNumberPickerView(child);    }    @Override    public void addView(View child, int index) {        super.addView(child, index);        setNumberPickerView(child);    }    @Override    public void addView(View child, int width, int height) {        super.addView(child, width, height);        setNumberPickerView(child);    }    @Override    public void addView(View child, ViewGroup.LayoutParams params) {        super.addView(child, params);        setNumberPickerView(child);    }    @Override    public void addView(View child, int index, ViewGroup.LayoutParams params) {        super.addView(child, index, params);        setNumberPickerView(child);    }    public void setNumberPickerView(View view) {        if (view instanceof EditText) {            ((EditText) view).setTextColor(ContextCompat.getColor(getContext(), R.color.colorPrimary)); //字体颜色            ((EditText) view).setTextSize(20f);//字体大小        }    }}

 

2.2.布局

                    

 

 

2.3.Java代码

/**     * Android NumberPicker     * */    private void initNumberPicker() {        MyNumberPicker numberPicker = findViewById(R.id.activity_main_testnumberpicker);        //设置最大值        numberPicker.setMaxValue(150);        //设置最小值        numberPicker.setMinValue(50);        //设置当前值        numberPicker.setValue(105);        //关闭编辑模式        numberPicker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);        //分割线颜色        setNumberPickerDividerColor(numberPicker);        //设置滑动监听        numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {            //当NunberPicker的值发生改变时,将会激发该方法            @Override            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {                String toast = "oldVal:" + oldVal + "   newVal:" + newVal;                Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();            }        });    }    /**     * 自定义滚动框分隔线颜色     */    private void setNumberPickerDividerColor(NumberPicker number) {        Field[] pickerFields = NumberPicker.class.getDeclaredFields();        for (Field pf : pickerFields) {            if (pf.getName().equals("mSelectionDivider")) {                pf.setAccessible(true);                try {                    //设置分割线的颜色值                    pf.set(number, new ColorDrawable(ContextCompat.getColor(this, R.color.colorPrimary)));                } catch (Exception e) {                    e.printStackTrace();                }                break;            }        }    }

 

2.4.效果图

Android NumberPicker详细使用_第2张图片

 

 

更多相关文章

  1. 安卓中颜色种类
  2. android 添加预装的方法
  3. Android滑动冲突解决方法
  4. android获取mac地址方法
  5. Android设置StatusBar颜色
  6. Android完全退出应用程序的方法
  7. 更改ProgressBar颜色,SwipeBack滑动返回功能。
  8. ListView多次调用getView方法
  9. Android定位问题方法

随机推荐

  1. Android--调用内置的浏览器
  2. Android(安卓)防止按钮重复点击
  3. Android源码中常用的系统广播
  4. Android提高十七篇之多级树形菜单的实现[
  5. Adapter 中getView使用注意点
  6. android 屏幕触摸事件的分发与处理
  7. 【读书笔记-《Android游戏编程之从零开始
  8. Android调用相机拍摄照片并显示到 ImageV
  9. 推送2
  10. Android自定义气球Overlay的开发