项目作者: zj565061763

项目描述 :
android progress clipper
高级语言: Java
项目地址: git://github.com/zj565061763/progress-clipper.git
创建时间: 2019-06-19T09:05:28Z
项目社区:https://github.com/zj565061763/progress-clipper

开源协议:MIT License

下载


Gradle

Demo

  1. // 设置背景颜色
  2. mProgressBar.setColorBackground(Color.parseColor("#999999"));
  3. // 设置进度颜色
  4. mProgressBar.setColorProgress(getResources().getColor(R.color.colorPrimary));
  5. // 设置最大进度值
  6. mProgressBar.setMax(100);
  7. // 设置跟随进度的点
  8. mProgressBar.setProgressPoint(new ProgressPoint());

目标点:

  1. // 在进度为20的地方创建一个目标点,当进度到达目标点后,目标点会被进度覆盖
  2. final TargetPoint point = new TargetPoint(20);
  3. // 设置目标点大小,默认1dp
  4. point.setDisplaySize(10);
  5. // 设置目标点颜色,默认白色
  6. point.setDisplayColor(Color.WHITE);
  7. // true-当进度到达目标点后,目标点会被进度覆盖但是不会被清除,即进度小于目标点进度的时候目标点又可以被看到;false-会被清除掉
  8. point.setSticky(true);
  9. // 添加目标点
  10. mProgressBar.addTargetPoint(point);
  11. // 移除目标点
  12. mProgressBar.removeTargetPoint(point.getProgress());
  13. // 清空所有目标点
  14. mProgressBar.clearTargetPoint();

边界点:

  1. // 创建一个边界点,边界点会显示在进度的上层,不会被进度覆盖
  2. final BoundsPoint point = new BoundsPoint(mProgressBar.getProgress());
  3. // 设置边界分段的颜色
  4. point.setBoundColor(Color.GREEN);
  5. // 将边界点添加到进度条
  6. mProgressBar.addBoundsPoint(point);

接口

  1. public interface ProgressClipper
  2. {
  3. /**
  4. * 返回当前进度
  5. *
  6. * @return
  7. */
  8. int getProgress();
  9. /**
  10. * 返回最大值
  11. *
  12. * @return
  13. */
  14. int getMax();
  15. /**
  16. * 返回某个值处于总进度的百分多少[0-1]
  17. *
  18. * @return [0-1]
  19. */
  20. float getProgressPercent(int progress);
  21. /**
  22. * 返回目标点
  23. *
  24. * @return
  25. */
  26. List<TargetPoint> getTargetPoint();
  27. /**
  28. * 返回最后一个目标点
  29. *
  30. * @return
  31. */
  32. TargetPoint getLastTargetPoint();
  33. /**
  34. * 返回边界点
  35. *
  36. * @return
  37. */
  38. List<BoundsPoint> getBoundsPoint();
  39. /**
  40. * 返回最后一个边界点
  41. *
  42. * @return
  43. */
  44. BoundsPoint getLastBoundsPoint();
  45. /**
  46. * 设置进度值
  47. *
  48. * @param progress
  49. */
  50. void setProgress(int progress);
  51. /**
  52. * 设置最大值
  53. *
  54. * @param max
  55. */
  56. void setMax(int max);
  57. /**
  58. * 添加目标点
  59. *
  60. * @param point
  61. */
  62. void addTargetPoint(TargetPoint point);
  63. /**
  64. * 移除目标点
  65. *
  66. * @param progress
  67. */
  68. void removeTargetPoint(int progress);
  69. /**
  70. * 移除所有目标点
  71. */
  72. void clearTargetPoint();
  73. /**
  74. * 边界点变化监听
  75. *
  76. * @param callback
  77. */
  78. void setOnBoundsPointChangeCallback(OnBoundsPointChangeCallback callback);
  79. /**
  80. * 添加边界点
  81. *
  82. * @param point
  83. */
  84. void addBoundsPoint(BoundsPoint point);
  85. /**
  86. * 移除边界点
  87. *
  88. * @param progress
  89. */
  90. void removeBoundsPoint(int progress);
  91. /**
  92. * 清空所有边界点
  93. */
  94. void clearBoundsPoint();
  95. /**
  96. * 同步进度到某个点
  97. *
  98. * @param point
  99. */
  100. void synchronizeProgressToPoint(ClipPoint point);
  101. /**
  102. * 同步进度到最后一个边界点,如果没有边界点,则进度设置为0
  103. */
  104. void synchronizeProgressToLastBoundsPoint();
  105. /**
  106. * 更新UI
  107. */
  108. void updateUI();
  109. interface OnBoundsPointChangeCallback
  110. {
  111. /**
  112. * 边界点变化监听
  113. *
  114. * @param size
  115. */
  116. void onBoundsPointChanged(int size);
  117. }
  118. }