在顶部离散搜索条上添加值(区间文本)

时间:2018-01-04 12:54:23

标签: android seekbar android-seekbar

如何在顶部离散seekbar上添加值(区间文本)。

例如: - 我想在seekbar

之上添加0-9(区间值)

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以制作自定义视图,例如

public class NumberedSeekBar extends AppCompatSeekBar {

并覆盖onDraw()

barBounds.left = getPaddingLeft();
barBounds.top = labelBackground.getHeight() + getPaddingTop();
barBounds.right = barBounds.left + viewWidth - getPaddingRight() - getPaddingLeft();
barBounds.bottom = barBounds.top + viewHeight - getPaddingBottom() - getPaddingTop();

progressPosX = barBounds.left + ((float) this.getProgress() / (float) this.getMax()) * barBounds.width();

labelPos.x = (int) progressPosX;
labelPos.y = getPaddingTop();

String labelText = this.getProgress() + "";

labelTextPaint.getTextBounds(labelText, 0, labelText.length(), labelTextRect);

canvas.drawText(labelText, (labelPos.x - pixelOffset) + labelBackground.getWidth() / 2 - labelTextRect.width() / 2, labelPos.y + labelBackground.getHeight() / 2 + labelTextRect.height() / 2, labelTextPaint);

barBoundsRect,在构造函数中制作,labelPosPointlabelTextPaint是默认的类似

labelTextPaint = new Paint();
labelTextPaint.setColor(Color.WHITE);
labelTextPaint.setTypeface(Typeface.DEFAULT_BOLD);
labelTextPaint.setAntiAlias(true);
labelTextPaint.setDither(true);