安卓視窗動畫修改製作心得,安卓視窗動畫心得
控制安卓視窗動畫的代碼是在framework-res.apk檔案中的anim檔案夾下,說一下整體的思路,開啟anim檔案編輯裡面的xml檔案,然後把他們再放回手機裡,首先我們要把framework-res.apk提取出來,如果你使用解壓縮的辦法會發現裡邊的檔案
是亂碼,所以檔案是需要我們反編譯才能編輯。
反編譯以及回編譯請移步此貼 http://bbs.lidroid.com/forum.php?mod=viewthread&tid=102159&extra=page%3D1%26filter%3Dtypeid%26typeid%3D14%26typeid%3D14
反編譯完成以後,我們就可以開啟anim檔案,瀏覽裡邊的代碼了。 安卓繪圖有4個基本代碼
- 1.alpha 漸層透明度動畫效果 1是不透明,0是完全透明
- 2。scale 漸層尺寸伸縮動畫效果 1是原大小 2就是兩倍大小
| fromXScale[float] fromYScale[float] |
為動畫起始時,X、Y座標上的伸縮尺寸 |
-
pivotX[float] pivotY[float] |
為動畫相對於物件的X、Y座標的開始位置 |
- pivovX 和pivovY也就是描述 畫面的縮放中心
- 3.translate 畫面轉換位置移動動畫效果
-
fromXDelta toXDelta |
為動畫、結束起始時 X座標上的位置 |
|
fromYDelta toYDelta |
為動畫、結束起始時 Y座標上的位置 |
|
| |
- 4.rotate 畫面轉移旋轉動畫效果
-
| fromDegrees |
為動畫起始時物件的角度 |
說明 當角度為負數——表示逆時針旋轉 當角度為正數——表示順時針旋轉 (負數from——to正數:順時針旋轉) (負數from——to負數:逆時針旋轉) (正數from——to正數:順時針旋轉) (正數from——to負數:逆時針旋轉) |
| toDegrees |
屬性為動畫結束時物件旋轉的角度 可以大於360度 |
pivotX pivotY |
為動畫相對於物件的X、Y座標的開始位 |
說明:以上兩個屬性值 從0%-100%中取值 50%為物件的X或Y方向座標上的中點位置 |
看明白了上面四個代碼的意思就可以明白如何修改得到自己喜歡的特效了。
我百度了很多,但是發現很多論壇上這些控制檔案的控制對象都說的十分含糊。
經過我很多天的測試,摸索,我把幾個檔案的控制的特效貼在下邊。
dialog_enter 描述的對話方塊的開啟
dialog_close 描述的對話方塊的關閉 具體就是比如你進入檔案管理工具,長按一個檔案夾,就會彈出那兒對話方塊,寫著各種檔案操作,比如複製剪下。
inputmethod_開頭的全是控制IME的
lock_screen_behind_enter
lock_screen_enter
lock_screen_exit
這三個是控制鎖屏的,第一個是控制鎖屏以後解鎖回案頭案頭的變化,第三個是控制解鎖一個在案頭上層覆蓋的畫面的變化情況。
options_panel_enter
options_panel_exit
這兩個是控制在案頭時候點擊功能鍵時候的動畫。
task_close_enter
task_close_exit
task_open_enter
task_open_exit
這四個是控制任務切換時候的動畫,比如你從簡訊介面切換到qq介面,第一個是程式關閉時另一個程式的進入動畫,比如你開啟簡訊,再開啟qq,這時候你按返回鍵,QQ就是被關閉的程式,這時候簡訊就是另一個程式,他控制了簡訊的進入特效
第二個是程式關閉退出的特效,就是上文qq退出時候的動畫
第三個是程式開啟時候程式進入的特效,比如先開啟簡訊,再開啟qq,qq進來的特效
第四個是程式開啟時,舊程式退出的特效,就是簡訊退出的特效。
app_starting_exit
這個是程式退出時候的特效。
activity_close_enter
activity_close_exit
activity_open_enter
activity_open_exit
有沒有發現這組和上一組很像,要是單純翻譯到中文,你根本區分不了task任務和activity活動的區別,實際上變成裡邊一個task
包含幾個activity,activity是一個應用程式裡邊的附屬的切換頁面,我理解的就是手機設定裡面那些設定按鈕的切換特效。
wallpaper_close_enter
wallpaper_close_exit
wallpaper_open_enter
wallpaper_open_exit
這四個就是控制你啟動程式和退出程式時候的效果了,這也是我最初修改動畫的目的所在,卻是我最後一個才找到的,安卓原生退出特效是一個矩形不斷變小,變成一個0.5倍的矩形的過程,我一直覺得為什麼不變到0.1倍,0.5唄突然消失總覺得不爽,話不多說言歸正傳,第一個按檔案名稱理解,壁紙關閉的時候進入的動畫,就是你在案頭上啟動qq,qq進入平面的動畫。
第二個壁紙關閉的時候退齣動畫,就是你在案頭啟動qq,案頭退出時候的動畫,第三個壁紙出現時候進入的動畫,就是你從qq退出到案頭,案頭顯示的動畫,最後一個壁紙進入,退出的動畫,就是從qq退出到案頭,qq消失的動畫。這四個是昨天晚上突然有的靈感,不知道為何以前修改這些都沒有效果,差點就因此放棄了。
然而
wallpaper_enter
wallpaper_exit
wallpaper_intra_close_enter
wallpaper_intra_close_exit
wallpaper_intra_open_enter
wallpaper_intra_open_exit
這6個我沒讀懂,大家誰明白了快點告訴我呀,intra 內部的,那麼到底什麼是壁紙內部動畫特效呢?不得而知了。
例子:
比如你覺得解鎖畫面太單調了,想來一個縮放特效,那麼就開啟解鎖的控制檔案
<?xml version="1.0" encoding="UTF-8"?>
<set android:interpolator="@anim/accelerate_interpolator"
xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:duration="@integer/config_longAnimTime" android:fromAlpha="0.6" android:toAlpha="1.0" />
</set>
前邊 android:interpolator是定義動畫速率的,然後accelerate_interpolator是加速的意思
看第四行 alpha 透明度 duration 是動畫時間的意思 後面="@integer/config_longAnimTime" ,可以把long改成short,或者medium,這些都是在其他檔案裡定義好的時間,或者乾脆改成數字是以毫秒計數的。上面的動畫就是說在longanimtime內從0.6的不透明度變化到1的不透明度,我們在這個後面添加以下代碼
scale android:duration="@integer/config_longAnimTime" android:pivotX="50.0%" android:pivotY="50.0%" android:fromXScale="2.5" android:toXScale="1.0" android:fromYScale="2.5" android:toYScale="1.0" />
這個函數不用自己寫呀,隨便開啟一個檔案自己找的有scale函數的把格式粘過來就行了,深藍色的部分是定義縮放的中心為螢幕中心,淺藍色的部分是橫座標的初始尺寸和結束尺寸,後面是縱座標的初始尺寸和結束尺寸。
關於座標,經過一些實驗我認為是螢幕的左上方是座標零點,向右為x正方向。向下是y正方向。可是有些代碼按這個座標系就讀不太懂了,我也不知道怎麼回事。
就這麼多吧,把這些編輯好的檔案回編譯回去測試就行了。
android 怎更改變視窗切換動畫
要改framework,在網上找找你手機型號的framework美化,應該附帶教程,一般是直接替換系統裡的framework重啟即可。需要root。
更改安卓23系統的視窗動畫
到 UOT廚房修改 教程b bs.hiapk. co m/thread-1375263-1-1.ht ml