- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
影像与动画
* 實作「擲骰子遊戲」程式 步驟五: 在Eclipse左邊的專案檢視視窗中展開「src/ (程式套件名稱)」資料夾,開啟其中的程式檔加以編輯,完整程式碼請參閱範例程式專案。 * 單元23 Property Animation初體驗 * Tween animation套用到介面元件 例如在程式專案的res/anim資料夾中建立一個名為rotate.xml的動畫資源檔如下: ?xml version=1.0 encoding=utf-8? set xmlns:android=/apk/res/android rotate android:interpolator=@android:anim/accelerate_decelerate_interpolator android:fromDegrees=0 android:toDegrees=360 android:pivotX=50% android:pivotY=50% android:duration=3000 / /set * Tween animation套用到介面元件 在介面佈局檔中建立Button元件,接著在程式檔中取得該Button元件,從程式資源中載入rotate動畫,並呼叫Button物件的startAnimation()方法將動畫套用在Button物件,如下列程式碼,就會看到程式畫面的按鈕開始轉動 Button btn = (Button)findViewById(R.id.btn); Animation anim = AnimationUtils.loadAnimation(Main.this, R.anim.rotate); btn.startAnimation(anim); * Tween animation套用到介面元件的限制 以上面的旋轉按鈕範例來說,可不可以讓按鈕的背景顏色也能隨著時間改變,或是讓按鈕中的文字大小隨著時間變化,甚至在按鈕轉動的過程中,當到達特定的角度時能夠執行某個特定的工作。很可惜對於Tween animation來說,並無法做到這樣的功能 * Property animation動畫技術 從Android 3.0版開始,加入了另一種稱為Property animation的動畫技術,它讓前面Tween animation無法做到的動畫效果變成可能。 構成動畫的幾個基本要素: 1. 動畫的主角 – 物體 也就是要動起來的物件,可能是一張影像、一個按鈕、一個字串…。 2. 時間 就是動畫從開始到結束的時間長短。 3. 物體狀態的變化 就是讓使用者看到物體狀態不斷的變化,例如位置、大小、顏色、角度…等。 以Tween animation來說,它的xml動畫資源檔中只包含了時間和狀態變化二個要素,第一個要素,也就是動畫的主角,是在程式碼中才會決定。 * Property animation動畫技術 Property animation是直接在程式碼中利用Animator物件設定三個動畫要素,然後便可以開始播放動畫,以旋轉按鈕的範例來說,以下的Property animation程式碼可以達到和Tween animation完全一樣的效果: ObjectAnimator animBtnRotate = ObjectAnimator.ofFloat(btn, rotation, 0, 360); animBtnRotate.setDuration(3000); animBtnRotate.start(); 第一行程式碼是使用ObjectAnimator的ofFloat()方法建立一個ObjectAnimator型態的動畫物件,ofFloat()方法的第一個參數是指定動畫的主角,也就是要改變狀態的物件,第二個參數是指定所要改變的狀態,也就是屬性,這個屬性名稱和在介面佈局檔中使用的屬性名稱相同,第三和第四個參數是指定狀態的起始值和結束值。第二行程式碼是呼叫ObjectAnimator物件的setDuration()方法設定動畫播放的時間長度,第三行程式碼則是呼叫start()方法開始執行動畫。 * Property animation動畫技術 除了可以呼叫setDuration()設定動畫執行的時間長短之外,還可以使用以下的方法設定其它動畫的屬性: 1.setRepeatCount() 設定動畫重播的次數,如果想要連續播放不要停可以設定為ObjectAnimator.INFINITE。 2.setRepeatMode() 設定動畫重播的方式,一種是從頭播放(ObjectAnimator.RESTART),一種是反
文档评论(0)