Я изучал, как вращать растровые изображения в Android, единственное, что я смог найти, это использовать матрицу. Это работает для вращений под углом 90 градусов, но кажется, что каждые 90 градусов точка поворота колеблется. Вот мой код, если вы хотите, чтобы я опубликовал изображение / gif ЗДЕСЬ результата, пожалуйста, так и скажите. Спасибо за вашу помощь
Matrix leftMat = new Matrix();
leftMat.setRotate ((float) (debug),thrustWidth,0);
Bitmap leftThruster = Bitmap.createBitmap (thruster,0,0, thruster.getWidth(),thruster.getHeight (),leftMat,true);
leftThruster.setHasAlpha(true);
canvas.drawBitmap(leftThruster,(int) (shipX +leftCords[0]),(int) (shipY+leftCords[1]-cameraY),null);
РЕДАКТИРОВАТЬ: кажется, что углы изображения пытаются встретиться с углами "ограничительной рамки", но я не могу получить больше, чем это.
РЕДАКТИРОВАТЬ: обновленный код (не точная копия, но, надеюсь, он дает все, что важно, я также заменил все переменные константами, где это применимо для ясности)
private Bitmap thruster = BitmapFactory.decodeResource(context.getResources(),R.drawable.thruster);
private float debug = 0;
public void draw(Canvas canvas) {
debug ++;
Matrix leftMat = new Matrix();
leftMat.postRotate(debug,0,0);
Bitmap leftThruster = Bitmap.createBitmap (thruster,0,0, thruster.getWidth(),thruster.getHeight(),leftMat,false);
leftThruster.setHasAlpha(false);
canvas.drawBitmap(leftThruster, 300, 300,null);