.:: CODE SNIPPET ::.

"Your time is limited, so don't waste it living someone else's life"

Cách tạo hiệu ứng di chuyển cho Dialog trong android


Để tạo hiệu ứng cho dialog, chúng ta lần lượt tạo ra các file hiệu ứng sau:
+File grow_from_bottom.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
                android:fromXScale="0.3" android:toXScale="1.0"
                android:fromYScale="0.3" android:toYScale="1.0"
                android:pivotX="50%" android:pivotY="100%"
                android:duration="@android:integer/config_shortAnimTime"
        />
        <alpha
                android:interpolator="@android:anim/decelerate_interpolator"
                android:fromAlpha="0.0" android:toAlpha="1.0"
                android:duration="@android:integer/config_shortAnimTime"
        />
</set>

+File grow_from_top.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
                android:fromXScale="0.3" android:toXScale="1.0"
                android:fromYScale="0.3" android:toYScale="1.0"
                android:pivotX="50%" android:pivotY="0%"
                android:duration="@android:integer/config_shortAnimTime"
        />
        <alpha
                android:interpolator="@android:anim/decelerate_interpolator"
                android:fromAlpha="0.0" android:toAlpha="1.0"
                android:duration="@android:integer/config_shortAnimTime"
        />
</set>

Hai file trên nên để vào thư mục res/anim
Tiếp theo chúng ta tạo ra file style.xml nằm trong thư mục res/values

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
          <style name="Animations" />
         <style name="Animations.SmileWindow">
                <item name="@android:windowEnterAnimation">@anim/grow_from_bottom</item>
                <item name="@android:windowExitAnimation">@anim/grow_from_top</item>
        </style>

</resources>

Việc duy nhất còn lại là khi tạo dialog chúng ta sẽ thêm vào một thuộc tính cho nó như sau:

Dialog dlg = new Dialog(this);
dlg.getWindow().getAttributes().windowAnimations = R.style.Animations_SmileWindow;

Thưởng thức đi :))

Advertisements

4 responses to “Cách tạo hiệu ứng di chuyển cho Dialog trong android

  1. tuan November 6, 2014 at 8:36 PM

    bạn ơi sao mình copy đoạn code trên nó báo lỗi vậy @@ cái file.xml đó

  2. Minh Trần November 6, 2014 at 9:47 PM

    Mình update lại rồi đó, chạy lại xem thử nghen.

  3. nguyentran February 9, 2015 at 10:45 PM

    anh oi, nhung tai sao em lam cai ham exit nhung khong thay animator the anh @@

  4. Minh Trần February 10, 2015 at 8:05 PM

    Chưa hiểu ý bạn muon hoi ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: