1

我想要一个搜索栏,我可以显示可接受值的范围,如下所示。我知道设置自定义可绘制来寻找栏的方法。我的问题是如何在 xml 中构建这种带有部分绿色部分的可绘制对象。在此先感谢。

在此处输入图像描述

4

2 回答 2

1

使用这个 Drawable,用 SeekBar.setProgressDrawable() 调用它

public class PartialDrawable extends Drawable {
    private float mStart;
    private float mEnd;
    private Paint mPaint;

    public PartialDrawable(float start, float end) {
        mStart = start;
        mEnd = end;
        mPaint = new Paint();
    }

    @Override
    public void draw(Canvas canvas) {
        Rect b = getBounds();
        mPaint.setColor(0xff888888);
        canvas.drawRect(b,mPaint);
        mPaint.setColor(0xff00aa00);
        canvas.drawRect(b.width() * mStart, b.top, b.width() * mEnd, b.bottom, mPaint);
    }

    @Override
    public void setAlpha(int alpha) {
    }

    @Override
    public void setColorFilter(ColorFilter cf) {
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSLUCENT;
    }
}
于 2013-10-30T09:26:13.020 回答
0

我不认为标准 SeekBar 提供最小和最大“可接受”值。您可以做的是简单地添加背景,使用方法

mySeekBar.setProgressDrawable(Drawable d);

并用灰色和绿色构建一个将被拉伸的图像。

于 2013-10-30T09:01:47.490 回答