镜像翻转一个视图/进度条

8
我有一个自定义的圆形进度条,用于时钟上的秒数计数器,我想要将其翻转,使时钟逆时针计数。在这里寻找解决方案,我找到了这个:Right to Left ProgressBar?显然,这适用于水平进度条,但我不能简单地将其旋转180度,因为那样只会将时钟移动180度,仍然会顺时针计数。是否有其他方法来镜像ProgressBar或任何视图?编辑:刚刚发现“android:rotationY”和程序等效性,但最好是适用于2.2及以上版本..

这不是真正的答案,但您是否考虑开源圆形进度条?我看到了很多人的请求。 - Raghav Sood
这是我最初的做法:https://dev59.com/62cs5IYBdhLWcg3wh0b7#12905405 但是自那以后它已经发生了很多变化。假期后我可以在github上组合一个示例应用程序! - user901309
这个回答解决了你的问题吗?Android自定义圆形进度条方向 - Mahozad
3个回答

10

我可以通过在XML中使用属性scaleX来轻松翻转ProgressBar

android:scaleX="-1"

这同样适用于其他View

3

与水平进度条相同,您可以扩展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);
}

}

0

是的。在更新版本的Material Design库中,圆形进度条可以被镜像:

  • 使用以下属性在布局中设置:
    app:indicatorDirectionCircular
    
  • 或者使用以下方法进行编程设置:
    setIndicatorDirection()
    

请参考这里获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接