鍍金池/ 教程/ Android/ Android Animation(動(dòng)畫(huà))實(shí)例
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢(shì)
Android AutoCompleteTextView(自動(dòng)完成)實(shí)例
Android 資源組織和訪問(wèn)
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過(guò)濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動(dòng)畫(huà))實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對(duì)話框)
Android圖片效果
Android內(nèi)部存儲(chǔ)
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開(kāi)發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動(dòng)代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android Animation(動(dòng)畫(huà))實(shí)例

動(dòng)畫(huà)在Android中可以有許多方式。在本章中,我們將討論一個(gè)簡(jiǎn)單的和廣泛使用的動(dòng)畫(huà)制作 - 所謂的補(bǔ)間動(dòng)畫(huà)方式。

補(bǔ)間動(dòng)畫(huà)

補(bǔ)間動(dòng)畫(huà)需要一些參數(shù),如初始值,終值,大小,持續(xù)時(shí)間,旋轉(zhuǎn)角度等,并對(duì)該對(duì)象執(zhí)行所需的動(dòng)畫(huà)。它可以應(yīng)用到任何類(lèi)型的對(duì)象。因此,為了利用這一點(diǎn),Android已經(jīng)為我們提供了一個(gè)類(lèi)叫做 Animation.

為了在android系統(tǒng)進(jìn)行顯示動(dòng)畫(huà),我們將調(diào)用AnimationUtils 類(lèi)的靜態(tài)函數(shù) loadAnimation()。我們將接受它在動(dòng)畫(huà)對(duì)象的實(shí)例。它的語(yǔ)法如下:

Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.myanimation);

注意第二個(gè)參數(shù)。它是動(dòng)畫(huà) xml文件的名稱(chēng)。必須創(chuàng)建一個(gè)res目錄下名為anim的文件夾,并在anim文件夾中創(chuàng)建XML文件。

這個(gè)動(dòng)畫(huà) animation 類(lèi)有下面列出許多有用的功能:

Sr.No 方法 & 描述
1 start()
此方法開(kāi)始動(dòng)畫(huà)
2 setDuration(long duration)
此方法設(shè)置動(dòng)畫(huà)的持續(xù)時(shí)間
3 getDuration()
此方法獲得其通過(guò)上述方法設(shè)定的持續(xù)時(shí)間
4 end()
此方法結(jié)束動(dòng)畫(huà)
5 cancel()
這個(gè)方法取消動(dòng)畫(huà)

為了應(yīng)用這個(gè)動(dòng)畫(huà)到對(duì)象,我們將只調(diào)用對(duì)象的startAnimation()方法。其語(yǔ)法是:

ImageView image1 = (ImageView)findViewById(R.id.imageView1);
image.startAnimation(animation);

放大動(dòng)畫(huà)

為了在動(dòng)畫(huà)進(jìn)行縮放,下創(chuàng)建anim文件夾中XML文件在res目錄下,并把這個(gè)代碼的文件中。

<set xmlns:android="http://schemas.android.com/apk/res/android">

   <scale xmlns:android="http://schemas.android.com/apk/res/android"
      android:fromXScale="0.5"
      android:toXScale="3.0"
      android:fromYScale="0.5"
      android:toYScale="3.0"
      android:duration="5000"
      android:pivotX="50%"
      android:pivotY="50%" >

   </scale>

</set>

參數(shù) fromXScale、fromYScale 限定開(kāi)始點(diǎn)和參數(shù) toXScale、toYScale定義結(jié)束點(diǎn)。duration 定義了動(dòng)畫(huà)的時(shí)間和pivotX,pivotYdefines中心從其中動(dòng)畫(huà)將開(kāi)始。

例子

參數(shù) fromXScale、fromYScale限定開(kāi)始點(diǎn),參數(shù) toXScale、toYScale 定義結(jié)束點(diǎn)。duration 定義了動(dòng)畫(huà)的時(shí)間 pivotX,pivotY 定義的中心從其中動(dòng)畫(huà)將開(kāi)始。

為了試驗(yàn)這個(gè)例子,需要在模擬器或?qū)嶋H設(shè)備上運(yùn)行。

Steps 描述
1 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為Animation ,創(chuàng)建這個(gè)項(xiàng)目時(shí)確保目標(biāo)SDK編譯在Android SDK的最新版本并使用更高級(jí)別的API
2 修改src/MainActivity.java文件中添加動(dòng)畫(huà)代碼
3 修改所需的布局XML文件res/layout/activity_main.xml l添加GUI組件
4 res目錄下新建一個(gè)文件夾,并將其命名為anim。通過(guò)訪問(wèn)確認(rèn):res/anim
5 創(chuàng)建新的Android XML文件,必須創(chuàng)建下面列出了三種不同的文件
6 創(chuàng)建myanimation.xml,clockwise.xml,fade.xml文件并添加X(jué)ML代碼
7 修改 res/values/string.xml 文件,并添加必要的字符串組成部分
8 修改res/menu/main.xml文件,并添加必要的菜單組件
9 運(yùn)行應(yīng)用程序并選擇要運(yùn)行的Android設(shè)備,并在其上安裝的應(yīng)用和驗(yàn)證結(jié)果。

這里是修改后的代碼 src/com.yii bai.animation/MainActivity.java.

package com.example.animation;

import com.example.animation.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }

   public boolean onOptionsItemSelected(MenuItem item) 
   { 
   super.onOptionsItemSelected(item); 
      switch(item.getItemId()) 
      { 
      case R.id.zoomInOut:
         ImageView image = (ImageView)findViewById(R.id.imageView1);
         Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.myanimation);
         image.startAnimation