当前位置:   article > 正文

鸿蒙应用开发 | 进度条(ProgressBar,Slider)的功能和用法_进度条的分割线

进度条的分割线

导语:大家好,我是你们的朋友 朋哥。

上一篇原创文章  时间选择器,设置了时间选择控件。

今天来说说进度条,鸿蒙中进度条分为两种 ProgressBar ,Slider 。提前说一下 鸿蒙进度条可是比Android强大多了。

图片

下面我们开始今天的文章,还是老规矩,通过如下几点来说:
 

1,简介 
2,用到的属性 
3,实战

简介

ProgressBar , Slider用于显示内容或操作的进度。可以通过进度条查看一些功能操作的进度。

使用场景:项目开发中 通过 设置数值 改变进度条的样式,或者通过手动拖动改变进度条和进度值。

ProgressBar , Slider 两者的主要区别就是  Slider有拖动圆环效果。

用到的属性

ProgressBar的共有XML属性继承自:ScrollView。
ProgressBar和Slider的关系:Slider 继承 ohos.agp.components.AbsSlider  继承 ohos.agp.components.ProgressBar

 

 

实战

1,添加默认的进度条

  1. <ProgressBar
  2. ohos:progress_width="10vp"
  3. ohos:height="60vp"
  4. ohos:width="match_parent"
  5. ohos:max="100"
  6. ohos:min="0"
  7. ohos:progress="60"
  8. ohos:orientation="horizontal"/>

1,默认进度条很简单 ,设置 最大值,最小值,默认进度值。
2,进度条方向 ohos:orientation="horizontal"

2,设置 进度条分割线和分割线颜色
​​​​​

  1. <ProgressBar
  2. ohos:id="$+id:progressbar"
  3. ohos:progress_width="10vp"
  4. ohos:height="100vp"
  5. ohos:width="match_parent"
  6. ohos:max="100"
  7. ohos:min="0"
  8. ohos:progress="30"
  9. ohos:progress_element="#000000"
  10. ohos:divider_lines_enabled="true"
  11. ohos:divider_lines_number="5"
  12. />

1,设置分割线 个数  ohos:divider_lines_number="5"
2,设置是否显示分割线  ohos:divider_lines_enabled="true"
3,设置进度条背景颜色  ohos:progress_element="#000000" 设置进度条分割线颜色 progressBar.setDividerLineColor(Color.RED);


图片
 

3,设置 进度条进度数值及其颜色
​​​​​

  1. <ProgressBar
  2. ohos:id="$+id:progressbar1"
  3. ohos:progress_width="10vp"
  4. ohos:height="100vp"
  5. ohos:width="match_parent"
  6. ohos:max="100"
  7. ohos:min="0"
  8. ohos:progress="30"
  9. ohos:progress_element="#232134"
  10. ohos:progress_hint_text="30%"
  11. ohos:progress_hint_text_color="#FFCC99"
  12. />

1,设置进度条数值  ohos:progress_hint_text="30%"
2, 设置进度条数值颜色 ohos:progress_hint_text_color="#FFCC99"

图片
 

4,设置 拖动条和拖动进度更新
​​​

  1. <Slider
  2. ohos:id="$+id:current_value_slider"
  3. ohos:width="0vp"
  4. ohos:weight="1"
  5. ohos:height="match_content"
  6. ohos:left_padding="10vp"
  7. ohos:right_padding="10vp"
  8. ohos:max="100"
  9. ohos:progress="0"
  10. ohos:progress_hint_text="20%"
  11. ohos:progress_hint_text_color="#FFCC99"/>

1, 设置拖动条 数值,和数值颜色
 

图片

2,拖动条 更新函数 
Slider.ValueChangedListener
currentSlider.setValueChangedListener(this);

  1. @Override
  2. public void onProgressUpdated(Slider slider, int position, boolean b) {
  3. switch (slider.getId()) {
  4. case ResourceTable.Id_current_value_slider: {
  5. progressBar.setProgressValue(position);
  6. progressBar1.setProgressHintText(position+"%");
  7. currentText.setText(String.valueOf(currentSlider.getProgress()));
  8. break;
  9. }
  10. default:
  11. break;
  12. }
  13. }

完整代码效果:
 

图片

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <DirectionalLayout
  3. xmlns:ohos="http://schemas.huawei.com/res/ohos"
  4. ohos:height="match_parent"
  5. ohos:width="match_parent"
  6. ohos:alignment="top"
  7. ohos:padding="20vp"
  8. ohos:orientation="vertical">
  9. <Text
  10. ohos:height="match_content"
  11. ohos:width="match_content"
  12. ohos:layout_alignment="left"
  13. ohos:text_color="#000000"
  14. ohos:text_size="20vp"
  15. ohos:text="水平进度条 / 竖直进度条"
  16. />
  17. <ProgressBar
  18. ohos:progress_width="10vp"
  19. ohos:height="60vp"
  20. ohos:width="match_parent"
  21. ohos:max="100"
  22. ohos:min="0"
  23. ohos:progress="60"
  24. ohos:orientation="horizontal"/>
  25. <ProgressBar
  26. ohos:progress_width="10vp"
  27. ohos:height="100vp"
  28. ohos:width="match_parent"
  29. ohos:max="100"
  30. ohos:min="0"
  31. ohos:progress="30"
  32. ohos:progress_element="#FF9900"
  33. ohos:orientation="vertical"/>
  34. <Text
  35. ohos:height="match_content"
  36. ohos:width="match_content"
  37. ohos:layout_alignment="left"
  38. ohos:text_color="#000000"
  39. ohos:text_size="20vp"
  40. ohos:text="进度条分割线和分割线颜色"
  41. />
  42. <ProgressBar
  43. ohos:id="$+id:progressbar"
  44. ohos:progress_width="10vp"
  45. ohos:height="100vp"
  46. ohos:width="match_parent"
  47. ohos:max="100"
  48. ohos:min="0"
  49. ohos:progress="30"
  50. ohos:progress_element="#000000"
  51. ohos:divider_lines_enabled="true"
  52. ohos:divider_lines_number="5"
  53. />
  54. <Text
  55. ohos:height="match_content"
  56. ohos:width="match_content"
  57. ohos:layout_alignment="left"
  58. ohos:text_color="#000000"
  59. ohos:text_size="20vp"
  60. ohos:text="进度条进度数值"
  61. />
  62. <ProgressBar
  63. ohos:id="$+id:progressbar1"
  64. ohos:progress_width="10vp"
  65. ohos:height="100vp"
  66. ohos:width="match_parent"
  67. ohos:max="100"
  68. ohos:min="0"
  69. ohos:progress="30"
  70. ohos:progress_element="#232134"
  71. ohos:progress_hint_text="30%"
  72. ohos:progress_hint_text_color="#FFCC99"
  73. />
  74. <Text
  75. ohos:height="match_content"
  76. ohos:width="match_content"
  77. ohos:layout_alignment="left"
  78. ohos:text_color="#000000"
  79. ohos:text_size="20vp"
  80. ohos:text="拖动条和拖动进度更新"
  81. />
  82. <DirectionalLayout
  83. ohos:orientation="horizontal"
  84. ohos:width="match_parent"
  85. ohos:height="match_content"
  86. ohos:top_margin="30vp">
  87. <Slider
  88. ohos:id="$+id:current_value_slider"
  89. ohos:width="0vp"
  90. ohos:weight="1"
  91. ohos:height="match_content"
  92. ohos:left_padding="10vp"
  93. ohos:right_padding="10vp"
  94. ohos:max="100"
  95. ohos:progress="0"
  96. ohos:progress_hint_text="20%"
  97. ohos:progress_hint_text_color="#FFCC99"/>
  98. <Text
  99. ohos:id="$+id:current_value_text"
  100. ohos:width="match_content"
  101. ohos:height="match_content"
  102. ohos:text="0"
  103. ohos:text_size="15fp"
  104. ohos:padding="5vp"
  105. ohos:right_margin="10vp"/>
  106.     </DirectionalLayout>
  107. </DirectionalLayout>
  1. package com.example.progressbar.slice;
  2. import com.example.progressbar.ResourceTable;
  3. import ohos.aafwk.ability.AbilitySlice;
  4. import ohos.aafwk.content.Intent;
  5. import ohos.agp.components.ProgressBar;
  6. import ohos.agp.components.Slider;
  7. import ohos.agp.components.Text;
  8. import ohos.agp.utils.Color;
  9. public class MainAbilitySlice extends AbilitySlice implements Slider.ValueChangedListener{
  10. private ProgressBar progressBar,progressBar1;
  11. private Text currentText;
  12. private Slider currentSlider;
  13. @Override
  14. public void onStart(Intent intent) {
  15. super.onStart(intent);
  16. super.setUIContent(ResourceTable.Layout_ability_main);
  17. progressBar = (ProgressBar)findComponentById(ResourceTable.Id_progressbar);
  18. progressBar.setDividerLineColor(Color.RED);
  19. progressBar1 = (ProgressBar)findComponentById(ResourceTable.Id_progressbar1);
  20. currentText = (Text) findComponentById(ResourceTable.Id_current_value_text);
  21. currentSlider = (Slider) findComponentById(ResourceTable.Id_current_value_slider);
  22. currentSlider.setValueChangedListener(this);
  23. }
  24. @Override
  25. public void onActive() {
  26. super.onActive();
  27. }
  28. @Override
  29. public void onForeground(Intent intent) {
  30. super.onForeground(intent);
  31. }
  32. @Override
  33. public void onProgressUpdated(Slider slider, int position, boolean b) {
  34. switch (slider.getId()) {
  35. case ResourceTable.Id_current_value_slider: {
  36. progressBar.setProgressValue(position);
  37. progressBar1.setProgressHintText(position+"%");
  38. currentText.setText(String.valueOf(currentSlider.getProgress()));
  39. break;
  40. }
  41. default:
  42. break;
  43. }
  44. }
  45. @Override
  46. public void onTouchStart(Slider slider) {
  47. }
  48. @Override
  49. public void onTouchEnd(Slider slider) {
  50. }
  51. }

老规矩 代码不能少,下载代码 运行效果看看,记得点个赞。
源码:
https://gitee.com/codegrowth/haomony-develop/tree/master/ProgressBar​​​​​​​

关注公众号【程序员漫话编程】,后台回复 ”鸿蒙“ ,即可获得上千鸿蒙开源组件。

原创不易,有用就关注一下。要是帮到了你 就给个三连吧,多谢支持。
 

觉得不错的小伙伴,记得帮我 点个赞和关注哟,笔芯笔芯~**

作者:码工
 

有问题请留言或者私信,可以 微信搜索:程序员漫话编程,关注公众号获得更多免费学习资料。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/233164
推荐阅读
相关标签
  

闽ICP备14008679号