3

アプリの入力に応じて回転させたいベクター ドローアブルがあります。

vector_drawable.xml があります

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="100dp"
    android:height="100dp"
    android:viewportWidth="100"
    android:viewportHeight="100">

    <group
      android:name="rotation_group"
      android:pivotX="50"
      android:pivotY="50"
      android:rotation="180" >
      <path
          android:pathData="..."
          android:fillColor="#ffffff"/>
      <path
          android:pathData="..."
          android:fillColor="#ffffff"/>
    </group>

    <path
        android:pathData="..."
        android:fillColor="#242424"/>
</vector>

私のコードでは、ValueAnimator を作成します

ValueAnimator animator = ObjectAnimator.ofInt(myDrawable, "rotate", 0, 360);
animator.setDuration(500);
animator.addUpdateListener(animatorUpdateListener);
animator.start();

animatorUpdateListener は次のように定義されています。

animatorUpdateListener = new AnimatorUpdateListener() {
  @Override
  public void onAnimationUpdate(ValueAnimator valueAnimator) {
    int angle = (int) valueAnimator.getAnimatedValue("rotate");
    myAngle = angle;
    myView.invalidate();
  }
};

私の onDraw メソッドで、次に呼び出します

canvase.save(Canvas.MATRIX_SAVE_FLAG);
canvas.rotate(myAngle);
myDrawable.draw(canvas);
canvas.restore();

キャンバスを回転する代わりに、vector_drawable.xmlandroid:rotation内のパラメーターを変更するにはどうすればよいですか?rotation_group

本当にありがとう!

4

1 に答える 1