Android从中心开始水平进度条

时间:2014-03-26 00:31:30

标签: android android-drawable android-progressbar

我正在开发一个自定义Android小部件,它将正值和负值都作为一个条形码。由于我正在寻找股票,我认为我会扩展ProgressBar类并将其用作我的小部件的基础。但是,我似乎找不到以编程方式获取条形本身的方法(而不是整个画布或整个画布),以便我可以将Rect的开头设置为酒吧的中间。

我想要实现的效果是这样的(显示负值,如果它是积极的,显然会以另一种方式)。

two way progress bar

我已经覆盖了进度设置器,以检查我们是否存储了负值:

private boolean isNegative;

@Override
public void setProgress(final int progress) {
    isNegative = progress < 0;
    super.setProgress(Math.min(Math.abs(progress), this.getMax()));
}

@Override
public int getProgress() {
    return (isNegative ? -1 : 1) * super.getProgress();
}

它真的只是画出我无法弄清楚的东西。这只需要针对最新的API(截至本文的19篇)。

1 个答案:

答案 0 :(得分:3)

也许现在回答为时已晚,但您可以使用两个ProgressBar,将第一个设置为从右到左progressBar.setRotation(180);,然后单独处理它们,在状态发生变化时更新它们。