Drawable Resources Stage list – Đổi màu, ảnh theo trạng thái hover, click

Vị trí file:

  • res/color/filename.xml –
  • res/drawable/filename.xml

Lớp sử dụng: ColorStateList

Gọi sử dụng:

In Java: R.color.filename
In XML: @[package:]color/filename

Cú pháp:

<!-- language: lang-xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:color="hex_color" android:drawable="@drawable/button_pressed" 
android:state_pressed=["true" | "false"] 
android:state_focused=["true" | "false"] 
android:state_selected=["true" | "false"] 
android:state_checkable=["true" | "false"] 
android:state_checked=["true" | "false"] 
android:state_enabled=["true" | "false"] 
android:state_window_focused=["true" | "false"] />
</selector>

Thành phần:

  • android:drawable – Ảnh đổi
  • android:color – màu đổi

Sử dụng:

File: res/color/button_text.xml

<!-- language: lang-xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
 <item android:state_pressed="true" android:color="#ffff0000"/> 
<!-- focused -->
 <item android:state_focused="true" android:color="#ff0000ff"/> 
 <item android:color="#ff000000"/> <!-- default -->
</selector>

Sử dụng:

<Button android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:text="@string/button_text" 
android:textColor="@color/button_text" />

Nguồn: http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

Android Frame Animation – Hiệu Ứng theo khung hình

Vị trí file: res/drawable/filename.xml

Lớp sử dụng: AnimationDrawable

Gọi sử dụng:

In Java: R.drawable.filename
In XML: @[package:]drawable.filename

Cú pháp:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot=["true" | "false"] >
 <item android:drawable="@[package:]drawable/drawable_resource_name" android:duration="integer" />
</animation-list/>

Thuộc tính:

  • android:oneshot: chạy 1 lần
    • true – chạy 1 lần
    • false – chạy hình nhiều lần
  • android:duration – thời gian của hình

Gọi trong code:

file xml – res/anim/rocket.xml:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list/> 

Sử dụng

 
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image); 
rocketImage.setBackgroundResource(R.drawable.rocket_thrust); 

rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 
rocketAnimation.start();

Trích:

http://developer.android.com/guide/topics/resources/animation-resource.html

Android – Animator – Hiệu Ứng – Chuyển hoạt nhiều hơn

Khác biệt Animation:

  • Animators là phiên bản sau của Animations (API 2.3)
  • Animators thay đổi, thay đổi theo Coordinates (Vị trí)

Vị trí File XML: res/animator/filename.xml

COMPILED RESOURCE DATATYPE – Loại Trong Resource: ValueAnimator, ObjectAnimator, or AnimatorSet

RESOURCE REFERENCE:

In Java: R.animator.filename
In XML: @[package:]animator/filename

Cú pháp:


<set
android:ordering=["together" | "sequentially"]>

<objectAnimator
android:propertyName="string"
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>

<animator
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>

<set>
...
</set>
</set>

Thuộc tính:

  • android:propertyName – tên thuộc tính (Required) example: “alpha”, “backgroundColor”, objectAnimator. Gọi trong Java: setTarget()
  • android:valueTo – (Required) 
  • android:valueFrom
  • android:duration
  • android:startOffset – Thời gian delays sau khi gọi start()
  • android:repeatCount – Lần lặp
    • -1 = vô hạn,
    • 0 = không lặp
  • android:repeatMode – Kiểu lặp
    • “reverse” = có nghịch đảo
    • “repeat” = lặp mỗi lần
  • android:valueType – Từ khóa
    • intType – thông số animated là kiểu Integers
    • floatType (default)

Gọi trong Java Code:

// Tạo AnimatorSet từ Animator
AnimatorSet anim = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.test_animator);
// Đặt đối tượng
anim.setTarget(mView);
// bắt đầu
anim.start();

Android – Animation – Hiệu ứng – Chuyển hoạt

Vị trí File XML:

res/anim/filename.xml

Resource reference (tên gọi):

In Java: R.anim.filename
In XML: @[package:]anim/filename

Thuộc tính chung:

  • android:fillAfter=”true” – Giữ trạng thái sau khi chạy (trong <set>)
  • android:fillBefore=”true” – Giữ trạng thái trước khi chạy
  • android:duration – Thời gian chạy
  • android:startOffset – Thời gian chờ trước khi chạy
  • android:repeatMode – Chế độ lặp
  • android:repeatCount – Lần lặp
  • infinite – lặp vô hạn
  • android:interpolator – (nội suy) kiểu chạy
    • @android:anim/accelerate_decelerate_interpolator – Tăng tốc, giảm tốc
    • @android:anim/accelerate_interpolator – Tăng tốc
    • @android:anim/anticipate_interpolator – (Biết trước) quay lên vị trí đầu, chạy tiếp
    • @android:anim/anticipate_overshoot_interpolator – (Biết trước_Vượt qua) quay lên vị trí đầu, vượt qua vị trí cuối
    • @android:anim/bounce_interpolator – (nẩy lên) nẩy lên ở vị trí cuối
    • @android:anim/cycle_interpolator – (Vòng tròn) chạy qua lại đầu, cuối
    • @android:anim/decelerate_interpolator – (Giảm tốc) Chậm dần
    • @android:anim/linear_interpolator – (Thẳng) đều đều
    • @android:anim/overshoot_interpolator – (Vượt qua) vượt qua vị trí cuối
    • @android:anim/fade_in
    • @android:anim/fade_out
    • @android:anim/slide_in_left – Chạy từ trái qua
    • @android:anim/slide_out_right – Chạy từ phải rồi mất

Alpha Animation (Độ trong suốt):


<alpha
android:duration="3000"

android:fromAlpha="0"
android:toAlpha="1" />

Rotate Animation (Độ xoay):


<rotate
android:duration="3000"

android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" />

</div>

Scale Animation (Độ co dãn):


<scale
android:duration="3000"

android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="2"
android:toYScale="2" />

Translate Animation (Độ đi chuyển):


</div>
<translate
android:duration="3000"

android:fromXDelta="-50%"
android:fromYDelta="-50%"
android:toXDelta="0%"
android:toYDelta="0%" />

Set/Batch Animation (nhiều hiệu ứng):


<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/slide_out_right">

<alpha
android:duration="3000"

android:fromAlpha="0"
android:toAlpha="1" />

<rotate
android:duration="3000"

android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" />

<scale
android:duration="3000"

android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="2"
android:toYScale="2" />

<translate
android:duration="3000"

android:fromXDelta="-50%"
android:fromYDelta="-50%"
android:toXDelta="0%"
android:toYDelta="0%" />

</set>

Gọi trong Code:

// Load hiệu ứng
final Animation amin = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_out);
// Sự kiệnamin.setAnimationListener(new Animation.AnimationListener() {
    @Override    public void onAnimationStart(Animation animation) {

    }

    @Override    public void onAnimationEnd(Animation animation) {

    }

    @Override    public void onAnimationRepeat(Animation animation) {

    }
});
// Chạy hiệu ứng
txtMessage.startAnimation(amin);

Trích:

http://www.androidhive.info/2013/06/android-working-with-xml-animations/
http://developer.android.com/guide/topics/resources/animation-resource.html