Я хочу нарисовать квадрат на экране на устройстве 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);
}
});
}
}
Как заставить этот квадрат непрерывно вращаться каждую секунду вокруг его центра, когда я начинаю задание?