Chi tiết hơn về cái này có thể xem ở: http://developer.android.com/guide/topics/graphics/view-animation.html
Thật ra mình mới tìm hiểu về View Animation nghĩa là hiệu ứng động chỉ dành cho View. Nhưng với người mới bắt đầu (như mình) thì thế là đủ để nghịch. Ở đây tiếc là không có file video hay gif nào minh họa hiệu ứng.
Để làm Animation cho View, rất đơn giản là tạo ra một file xml ở trong thư mục anim có dạng:
Đoạn trên là hiệu ứng fade-in, tức là View sẽ hiện ra dần dần (alpha tăng dần, transparent giảm dần).
Ở đây mình không nói chi tiết về cú pháp file này vì ở dưới sẽ có link đến một chỗ có thể download vài animation đơn giản để sử dụng luôn (và để từ đó mà học, bắt chước theo). Còn cụ thể về cú pháp file xml cho animation này thế nào thì bạn tham khảo ở link http://developer.android.com/guide/topics/resources/animation-resource.html
Và để dùng trong chương trình android chỉ cần thế này:
Animation anim = AnimationUtils.loadAnimation(getBaseContext(),R.anim.fadein); someview.startAnimation(anim); someview.setVisibility(View.VISIBLE);Ở đây giả định rằng someview trước đây ẩn, giờ hiện ra. Nếu ngược lại làm nó biến mất thì dùng fade-out.
Ở đây Animation được tạo bằng cách load ra từ xml (R.anim.fadein; có file fadein.xml trong thư mục anim) bằng AnimationUtils.loadAnimation. Có thể tạo animation bằng cách dùng mã lệnh java nhưng mình không nói ở đây vì mình thấy dùng xml dễ dàng hơn nhiều.
Tiếp theo someview (là View) sẽ startAnimation với animation đã được load ở trên.
Tiếp theo nữa là hiện nó ra. Nếu không cho nó hiện ra thì animation kết thúc nó lại biến mất.
Tóm lại:
+ Nếu có thể, nên dùng animation để chương trình thêm sinh động, vì công sức để làm là không nhiều
+ Bạn có thể dùng file xml animation sẵn có, copy vào thư mục anim, và viết 3 dòng code, thế là đã có một hiệu ứng vào ra thú vị.
+ Có một trang có vài animation xml mà bạn có thể tải về dùng ngay: http://www.mokasocial.com/2011/07/7-simple-useful-android-xml-animations/
This comment has been removed by the author.
ReplyDeleteBài viết rất ý nghĩa, thanks đã chia sẻ. Mong bạn chia sẻ nhiều bài bổ ích hơn nữa
ReplyDelete