Wednesday, July 17, 2013

Hiệu ứng động cho android (animation)

Mình đã làm xong đồ án và có thời gian làm tiếp cho phần mềm RC4W (link ở trên). Mấy ngày qua làm và thấy rằng hiệu ứng động (animation) cho android khá là dễ làm, bắt mắt và làm cho phần mềm sinh động hơn. Cũng lạ là ít thấy người ta chia sẻ về cái này.

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/