Đôi khi ta cần quay tròn
một image, button theo số lần nhất định, ta chỉ cần dùng các đoạn code sau.
RotateAnimation rotate = new
RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(500);
rotate.setInterpolator(new
LinearInterpolator());
rotate.setRepeatMode(Animation.RELATIVE_TO_SELF);
rotate.setRepeatCount(11);
im.startAnimation(rotate);
Có thể chỉnh nhanh chậm ở
setDuration, số vòng ở setPepeatCount, muốn quay mãi thì thành
rotate.setRepeatCount(Animation.INFINITE);
Muốn quay ngay khi vào màn
hình thì để đoạn code đó xuống dưới các dòng findViewById là được.
Nếu muốn 1 ảnh icon nhỏ quay
quanh một bán kính nào đó, bạn thay dòng đầu tiên thành
RotateAnimation rotate = new RotateAnimation(0, 360,0,200);
Đường
kính quay sẽ là 200dp.
Nếu
muốn nó quay vòng tại chỗ, đường kính quay bằng chiều rộng của nó, bạn dùng.
RotateAnimation rotate = new
RotateAnimation(0, 360);
Chú
ý trong file xml imageview phải set cao rộng là wrapcontent.
Muốn
một icon chuyển động qua lại như quả lắc, hãy tạo một icon mà trong ảnh đứng thẳng
của nó cái sợi dây phải bắt đầu từ góc trên bên trái.
Sau
đó dùng đoạn code sau
RotateAnimation rotate = new
RotateAnimation(-20, 30);
rotate.setDuration(1500);
rotate.setInterpolator(new
LinearInterpolator());
rotate.setFillAfter(true);
rotate.setRepeatMode(Animation.REVERSE);
rotate.setRepeatCount(Animation.INFINITE);
Trông
bình thường thì chéo nhưng khi cho vào lắc lư nó sẽ giống hệt một quả lắc đồng
hồ.
Trong
canvas cách này không dùng được, bạn phải dùng cách khác.
No comments:
Post a Comment