Thuộc tính cần nhớ: - android:fromAlpha: Bắt đầu làm mờ view.. Thuộc tính cần nhớ: - android:fromXScale: Bắt đầu thay đổi kích thước theo trục X.. - android:toXScale: Kết thúc thay đ
Trang 1Bài 13: Android Animation
Trang 2Nội dung bài học
1 Tween animation
1.1 Alpha
1.2 Scale
1.3 Translate
1.4 Rotate
2 Frame animation
Trang 3Tween animation
1 Tween animation
- Tween animation là tạo ra hình động bằng cách thực hiện 1 loạt các biến đổi trên 1 hình ảnh duy nhất.
1.1 Alpha
- Làm fade-in hoặc fade-out cho view.
Thuộc tính cần nhớ:
- android:fromAlpha: Bắt đầu làm mờ view Truyền vào giá trị float trong khoảng từ 0.0 đến
1.0 ở đó 0.0 là trong suốt, 1.0 là bình thường.
- android:toAlpha: Kết thúc làm mờ view Truyền vào giá trị float trong khoảng từ 0.0 đến
1.0.
- android:duration: Thời gian thực hiện animation Đơn vị là ms Mặc định là 300 ms.
Trang 4Tween animation
1.1 Alpha
<alpha
android:duration="1000"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
- Để thực hiện animation ta làm như sau:
Animation alphaAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha_animation);
btnAlpha.startAnimation(alphaAnimation);
Trang 5Tween animation
1.1.2 Scale
- Làm thay đổi kích thước cho view.
Thuộc tính cần nhớ:
- android:fromXScale: Bắt đầu thay đổi kích thước theo trục X Ở đó 1.0 là ko
thay đổi.
- android:toXScale: Kết thúc thay đổi kích thước theo trục X.
- android:fromYScale: Bắt đầu thay đổi kích thước theo trục Y.
- android:toYScale: Kết thúc thay đổi kích thước theo trục Y.
- android:pivotX: Tọa độ trên trục X khi view được thay đổi.
- android:pivotY: Tọa độ trên trục Y khi view được thay đổi.
- android:repeatCount: Animation lặp lại bao nhiêu lần Nếu để infinite(-1) sẽ
lặp lại vô hạn.Mặc định giá trị là 0 thì được thực hiện 1 lần.
- android:repeatMode: Cách mà animation sẽ hoạt động khi kết thúc 1 lần Thuộc
tính này có hiệu lực nếu thuộc tính android:repeatCount truyền vào giá trị là 1 số lớn hơn 0 hoặc infinite(-1).
Trang 6Tween animation
1.1.2 Scale
Ví dụ:
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="0.0"
android:pivotY="0.0"
android:toXScale="1.0"
android:repeatCount="infinite"
android:repeatMode="restart"
android:toYScale="3.0" >
</scale>
Trang 7Tween animation
1.1.3 Translate
- Dịch chuyển view theo chiều dọc hoặc chiều ngang
Các thuộc tính cần nhớ:
- android:fromXDelta: Vị trí bắt đầu di chuyển theo trục X Truyền vào giá trị float hoặc %.
- android:toXDelta: Vị trí kết thúc quá trình di chuyển theo trục X Truyền vào giá trị float hoặc %.
- android:fromYDelta: Vị trí bắt đầu di chuyển theo trục Y Truyền vào giá trị float hoặc %.
- android:toYDelta: Vị trí kết thúc quá trình di chuyển theo trục Y Truyền vào giá trị float hoặc % Nếu truyền vào giá
trị là số hoặc % thì view sẽ dịch chuyển theo % kích thước của view Nếu truyền vào giá trị là %p thì view sẽ dịch chuyển theo % kích thước của layout cha chứa view đó
Trang 8Tween animation
1.1.3 Translate
Ví dụ:
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000“
android:fromXDelta="0"
android:toXDelta="50%p"
android:fromYDelta="0"
android:toYDelta="50%p">
</translate>
Trang 9Tween animation
1.1.4 Rotate
- Xoay view theo 1 góc bất kỳ.
Các thuộc tính cần nhớ:
- android:fromDegrees: Bắt đầu từ bao nhiêu độ.
- android:toDegrees: Kết thúc ở bao nhiêu độ.
- android:pivotX: Tọa độ X làm tâm quay Truyền vào giá trị%p là so với layout cha chứa view đó Truyền vào % là so với bản thân
view đó.
- android:pivotY: Tọa độ Y làm tâm quay.
Ví dụ:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromDegrees="0“
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >
</rotate>
Trang 10Frame animation
- Frame animation là tạo ra hình động bằng cách hiển thị 1 chuỗi các hình ảnh liên tiếp với đối tượng
- Tạo file animation và để vào đường dẫn sau res/drawable/filename.xml
Các thuộc tính cần nhớ:
- android:oneshot: Truyền vào true nếu muốn animation thực hiện 1 lần false nếu muốn animation lặp.
Để thực hiện animation ta làm như sau:
ImageView iv = (ImageView) findViewById(R.id.iv_animation);
iv.setBackgroundResource(R.drawable.frame_animation);
AnimationDrawable animationDrawable = (AnimationDrawable) iv.getBackground(); animationDrawable.start();
Trang 11Q&A