鸿蒙OS应用开发之——Java UI框架-常用组件Picker

一 概述

  • Picker的基本使用
  • Picker样式设置

二 Picker的基本使用

2.1 在XML中创建Picker(默认0~9)

<Picker
    ohos:id="$+id:test_picker"
    ohos:height="match_content"
    ohos:width="300vp"
    ohos:background_element="#E1FFFF"
    ohos:layout_alignment="horizontal_center"
    ohos:normal_text_size="16fp"
    ohos:selected_text_size="16fp"/>

2.2 设置Picker的取值范围

Picker picker = (Picker) findComponentById(ResourceTable.Id_test_picker);
picker.setMinValue(0); // 设置选择器中的最小值
picker.setMaxValue(6); // 设置选择器中的最大值

2.3 响应选择器变化

picker.setValueChangedListener(new Picker.ValueChangedListener() {
            @Override
            public void onValueChanged(Picker picker, int oldV, int newV) {
                //new ToastDialog(getContext()).setText("oldV="+oldV+":newV="+newV).show();
            }
        });

2.4 格式化Picker的显示

picker.setFormatter(new Picker.Formatter() {
    @Override
     public String format(int i) {
         String value;
         switch (i) {
           case 0:
                 value = "Mon";
                  break;
            case 1:
                  value = "Tue";
                  break;
            case 2:
                  value = "Wed";
                  break;
            case 3:
                  value = "Thu";
                  break;
             case 4:
                   value = "Fri";
                   break;
              case 5:
                   value = "Sat";
                   break;
              case 6:
                    value = "Sun";
                    break;
              default:
                    value = "Mon";
                    break;
             }
             return value;
     }
 });

2.4 设置要显示的字符串数组

picker.setDisplayedData(new String[]{"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"});

三 样式设置

3.1 文本相关属性

属性Java方法描述
-setNormalTextFont(Font font)设置此Picker中待选文本的字体。
normal_text_sizesetNormalTextSize(int textSize)为Picker上待选文本设置字体大小。
normal_text_colorsetNormalTextColor(Color color)为Picker上待选文本设置颜色。
-setSelectedTextFont(Font font)设置此Picker中被选中的文本的字体。
selected_text_sizesetSelectedTextSize(int textSize)为Picker上被选中的文本设置字体大小。
selected_text_colorsetSelectedTextColor(Color color)为Picker上被选中的文本设置颜色。
在XML文件中设置文本样式
<Picker
    ...
    ohos:normal_text_size="16fp"
    ohos:normal_text_color="#FFA500"
    ohos:selected_text_size="16fp"
    ohos:selected_text_color="#00FFFF"/>
在Java代码中设置文本样式:
picker.setNormalTextFont(Font.DEFAULT_BOLD);
picker.setNormalTextSize(40);
picker.setNormalTextColor(new Color(Color.getIntColor("#FFA500")));
picker.setSelectedTextFont(Font.DEFAULT_BOLD);
picker.setSelectedTextSize(40);
picker.setSelectedTextColor(new Color(Color.getIntColor("#00FFFF")));
设置后的样式

3.2 设置所选文本的上下边框

在XML中设置:
<Picker
    ...
    ohos:bottom_line_element="#40E0D0"
    ohos:top_line_element="#40E0D0"/>
在Java代码中设置
ShapeElement shape = new ShapeElement();
shape.setShape(ShapeElement.RECTANGLE);
shape.setRgbColor(RgbColor.fromArgbInt(0xFF40E0D0));
// 单独设置上边框
// picker.setDisplayedLinesTopElement(shape); 
// 单独设置下边框
// picker.setDisplayedLinesBottomElement(shape);
// 同时设置上下边框
picker.setDisplayedLinesElements(shape,shape);
设置后的上下边框样式

3.3 设置Picker的着色器颜色

在XML文件中设置
<Picker
    ...
    ohos:shader_color="#1E90FF"/>
在Java代码中设置
picker.setShaderColor(new Color(Color.getIntColor("#1E90FF")));
设置着色器颜色后的样式

3.4 设置Picker中所选文本边距与普通文本边距的比例

在XML文件中设置
<Picker
    ...
    ohos:selected_normal_text_margin_ratio="5.0">
</Picker>
在Java代码中设置:
picker.setSelectedNormalTextMarginRatio(5.0f);
设置边距后的效果

3.5 设置选择轮模式

该模式是来决定Picker是否是循环显示数据的
boolean isWheel = picker.isWheelModeEnabled(); // 获取当前是否是选择轮模式
picker.setWheelModeEnabled(!isWheel);
更改选择轮模式后的显示效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值