Wednesday, October 4, 2017

Quay tròn một View

Đô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