如何在顶部离散seekbar
上添加值(区间文本)。
例如: - 我想在seekbar
任何帮助表示赞赏。
答案 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);
barBounds
是Rect
,在构造函数中制作,labelPos
是Point
而labelTextPaint
是默认的类似
labelTextPaint = new Paint();
labelTextPaint.setColor(Color.WHITE);
labelTextPaint.setTypeface(Typeface.DEFAULT_BOLD);
labelTextPaint.setAntiAlias(true);
labelTextPaint.setDither(true);