Рисование непрерывно вращающегося квадрата в Android - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу нарисовать квадрат на экране на устройстве Android и хочу, чтобы квадрат непрерывно вращался каждую секунду. Я рисую квадрат, используя пользовательский класс View. Но когда я вызываю rotate на объекте Canvas, квадрат не вращается. Мой код

public class MySquareView extends View{
    private Rect square;
    private Paint paint;

    public MySquareView(Context context){
    super(context);

    int x = 50;
    int y = 50;
    int sideLength = 200;

    square = new Rect(50, 50, 200, 200);

    paint = new Paint();
    paint.setColor(Color.GRAY);
    }

    @Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    canvas.drawColor(Color.WHITE);
    canvas.drawRect(rect, paint);

    canvas.save();

    canvas.rotate(25, rect.centerX()/2, rect.centerY()/2);

    canvas.drawRect(rect, paint);

    canvas.restore();




    //draw(canvas);

}
@Override
public void draw(Canvas canvas) {
    super.draw(canvas);

        canvas.save();

        canvas.rotate(25, rect.centerX()/2 , rect.centerY()/2);

        canvas.drawRect(rect, paint);

        canvas.restore();

      }

  }

Мой класс занятий:

public class MainActivity extends AppCompatActivity {

Canvas canvas;

CustomSquareView customSquareView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);
    customSquareView = new CustomSquareView(this);
    setContentView(customSquareView);

    runTimer();
}

public void runTimer(){

    canvas = new Canvas();
    canvas.drawColor(Color.WHITE);
    final Handler handler = new Handler();

    handler.post(new Runnable() {
        @Override
        public void run() {

            customSquareView.draw(canvas);
            //customSquareView.invalidate();

            handler.postDelayed(this, 1000);

        }
    });

}

}

Как заставить этот квадрат непрерывно вращаться каждую секунду вокруг его центра, когда я начинаю задание?

...