7

時計の秒カウンターに使用されるカスタムビルドの円形プログレスバーがあります。これを反転させて、時計が反時計回りにカウントされるようにします。

ここで解決策を検索すると、次のことがわかりました。

右から左の ProgressBar?

これは明らかに水平のプログレスバーで機能しますが、単純に 180 度回転させることはできません。これは時計を 180 度移動させるだけで、時計回りにカチカチ音をたて続けるためです。

ProgressBar またはビューをミラーリングする他の方法はありますか?

編集:

「android:rotationY」とプログラムで同等のものが見つかりましたが、これは理想的には 2.2 以降である必要があります。

4

3 に答える 3

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 に答える