7

我有一个定制的圆形进度条,用于时钟上的秒计数器,我想翻转它,以便时钟逆时针计数。

在这里搜索解决方案,我发现了这个:

从右到左进度条?

这显然适用于水平进度条,但我不能简单地将它旋转 180 度,因为这只会将时钟移动 180 度并且它仍然会顺时针滴答作响。

有没有其他方法可以镜像 ProgressBar 或任何视图?

编辑:

刚刚找到“android:rotationY”和等效的程序,但理想情况下这需要用于 2.2 及更高版本..

4

3 回答 3

8

我能够简单地使用XMLProgressBar中的属性进行翻转:scaleX

android:scaleX="-1"

这也适用于其他View人。

于 2018-04-02T11:00:43.407 回答
2

以与水平进度条相同的方式扩展 ProgressBar,但在 onDraw 方法中,翻转画布而不是旋转它:

public class InverseProgressBar extends ProgressBar {

public InverseProgressBar(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public InverseProgressBar(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public InverseProgressBar(Context context) {
    super(context);
}

@Override
protected synchronized void onDraw(Canvas canvas) {
    canvas.scale(-1f, 1f, super.getWidth() * 0.5f, super.getHeight() * 0.5f);
    super.onDraw(canvas);
}

}
于 2012-12-24T18:34:39.707 回答
0

是的。在较新版本的材料设计库中,可以镜像圆形进度条:

  • 在具有此属性的布局中
    app:indicatorDirectionCircular
    
  • 或以编程方式使用此方法
    setIndicatorDirection()
    

请参阅此处了解更多信息。

于 2021-01-08T10:06:44.980 回答