【Android 基礎(chǔ)】Animation 動(dòng)畫(huà)介紹和實(shí)現(xiàn)

在前面?PopupWindow 實(shí)現(xiàn)顯示仿騰訊新聞底部彈出菜單有用到Animation動(dòng)畫(huà)效果來(lái)實(shí)現(xiàn)菜單的顯示和隱藏吨述,本文就來(lái)介紹下吧唤冈。

1.Animation 動(dòng)畫(huà)類型

Android的animation由四種類型組成:

XML中

alph漸變透明度動(dòng)畫(huà)效果

scale漸變尺寸伸縮動(dòng)畫(huà)效果

translate畫(huà)面轉(zhuǎn)換位置移動(dòng)動(dòng)畫(huà)效果

rotate畫(huà)面轉(zhuǎn)移旋轉(zhuǎn)動(dòng)畫(huà)效果






JavaCode中

AlphaAnimation漸變透明度動(dòng)畫(huà)效果

ScaleAnimation漸變尺寸伸縮動(dòng)畫(huà)效果

TranslateAnimation畫(huà)面轉(zhuǎn)換位置移動(dòng)動(dòng)畫(huà)效果

RotateAnimation畫(huà)面轉(zhuǎn)移旋轉(zhuǎn)動(dòng)畫(huà)效果





?2.Android動(dòng)畫(huà)模式

Animation主要有兩種動(dòng)畫(huà)模式:

一種是tweened animation(漸變動(dòng)畫(huà))

XML中JavaCode

alphaAlphaAnimation

scaleScaleAnimation




一種是frame by frame(畫(huà)面轉(zhuǎn)換動(dòng)畫(huà))?

XML中JavaCode

translateTranslateAnimation

rotateRotateAnimation




3.如何在XML文件中定義動(dòng)畫(huà)

步驟如下:

①新建 Android 項(xiàng)目

②在res目錄中新建anim文件夾

③在anim目錄中新建一個(gè)my_anim.xml(注意文件名小寫(xiě))

④在?my_anim.xml?加入動(dòng)畫(huà)代碼


4.Android動(dòng)畫(huà)解析--XML

4.1 alpha 漸變透明度動(dòng)畫(huà)效果

? ? ? ? android:duration="1000"? ? ? ? android:fromAlpha="0.0"? ? ? ? android:toAlpha="1.0"/>

? ? ? ? 浮點(diǎn)型值:

? ? ? ? ? ? fromAlpha 屬性為動(dòng)畫(huà)起始時(shí)透明度

? ? ? ? ? ? toAlpha? 屬性為動(dòng)畫(huà)結(jié)束時(shí)透明度

? ? ? ? ? ? 說(shuō)明:

? ? ? ? ? ? ? ? 0.0表示完全透明

? ? ? ? ? ? ? ? 1.0表示完全不透明

? ? ? ? ? ? 以上值取0.0-1.0之間的float數(shù)據(jù)類型的數(shù)字


? ? ? ? 長(zhǎng)整型值:

? ? ? ? ? ? duration? 屬性為動(dòng)畫(huà)持續(xù)時(shí)間

? ? ? ? ? ? 說(shuō)明:? ?

? ? ? ? ? ? ? ? 時(shí)間以毫秒為單位

? ? -->


4.2 scale 漸變尺寸伸縮動(dòng)畫(huà)效果

? ? ? ? android:duration="1000"? ? ? ? android:fillAfter="false"? ? ? ? android:fromXScale="0.0"? ? ? ? android:fromYScale="0.0"? ? ? ? android:interpolator="@android:anim/accelerate_decelerate_interpolator"? ? ? ? android:pivotX="50%"? ? ? ? android:pivotY="50%"? ? ? ? android:toXScale="1.4"? ? ? ? android:toYScale="1.4"/>

? ? ? 屬性:interpolator 指定一個(gè)動(dòng)畫(huà)的插入器

? ? ? ? 在我試驗(yàn)過(guò)程中休弃,使用android.res.anim中的資源時(shí)候發(fā)現(xiàn)

? ? ? ? 有三種動(dòng)畫(huà)插入器:

? ? ? ? ? ? accelerate_decelerate_interpolator? 加速-減速 動(dòng)畫(huà)插入器

? ? ? ? ? ? accelerate_interpolator? ? ? ? 加速-動(dòng)畫(huà)插入器

? ? ? ? ? ? decelerate_interpolator? ? ? ? 減速- 動(dòng)畫(huà)插入器

? ? ? ? 其他的屬于特定的動(dòng)畫(huà)效果

? ? ? 浮點(diǎn)型值:


? ? ? ? ? ? fromXScale 屬性為動(dòng)畫(huà)起始時(shí) X坐標(biāo)上的伸縮尺寸? ?

? ? ? ? ? ? toXScale? 屬性為動(dòng)畫(huà)結(jié)束時(shí) X坐標(biāo)上的伸縮尺寸? ?


? ? ? ? ? ? fromYScale 屬性為動(dòng)畫(huà)起始時(shí)Y坐標(biāo)上的伸縮尺寸? ?

? ? ? ? ? ? toYScale? 屬性為動(dòng)畫(huà)結(jié)束時(shí)Y坐標(biāo)上的伸縮尺寸? ?


? ? ? ? ? ? 說(shuō)明:

? ? ? ? ? ? ? ? 以上四種屬性值? ?


? ? ? ? ? ? ? ? ? ? 0.0表示收縮到?jīng)]有

? ? ? ? ? ? ? ? ? ? 1.0表示正常無(wú)伸縮? ?

? ? ? ? ? ? ? ? ? ? 值小于1.0表示收縮?

? ? ? ? ? ? ? ? ? ? 值大于1.0表示放大


? ? ? ? ? ? pivotX? ? 屬性為動(dòng)畫(huà)相對(duì)于物件的X坐標(biāo)的開(kāi)始位置

? ? ? ? ? ? pivotY? ? 屬性為動(dòng)畫(huà)相對(duì)于物件的Y坐標(biāo)的開(kāi)始位置


? ? ? ? ? ? 說(shuō)明:

? ? ? ? ? ? ? ? ? ? 以上兩個(gè)屬性值 從0%-100%中取值

? ? ? ? ? ? ? ? ? ? 50%為物件的X或Y方向坐標(biāo)上的中點(diǎn)位置


? ? ? ? 長(zhǎng)整型值:

? ? ? ? ? ? duration? 屬性為動(dòng)畫(huà)持續(xù)時(shí)間

? ? ? ? ? ? 說(shuō)明:? 時(shí)間以毫秒為單位

? ? ? ? 布爾型值:

? ? ? ? ? ? fillAfter 屬性 當(dāng)設(shè)置為true 盅抚,該動(dòng)畫(huà)轉(zhuǎn)化在動(dòng)畫(huà)結(jié)束后被應(yīng)用-->


4.3 translate 畫(huà)面轉(zhuǎn)換位置移動(dòng)動(dòng)畫(huà)效果

? ? ? ? android:duration="2000"? ? ? ? android:fromXDelta="30"? ? ? ? android:fromYDelta="30"? ? ? ? android:toXDelta="-80"? ? ? ? android:toYDelta="300"/>

? ? ? ? 整型值:

? ? ? ? ? ? fromXDelta 屬性為動(dòng)畫(huà)起始時(shí) X坐標(biāo)上的位置? ?

? ? ? ? ? ? toXDelta? 屬性為動(dòng)畫(huà)結(jié)束時(shí) X坐標(biāo)上的位置

? ? ? ? ? ? fromYDelta 屬性為動(dòng)畫(huà)起始時(shí) Y坐標(biāo)上的位置

? ? ? ? ? ? toYDelta? 屬性為動(dòng)畫(huà)結(jié)束時(shí) Y坐標(biāo)上的位置

? ? ? ? ? ? 注意:

? ? ? ? ? ? ? ? ? ? 沒(méi)有指定fromXType toXType fromYType toYType 時(shí)候房待,

? ? ? ? ? ? ? ? ? ? 默認(rèn)是以自己為相對(duì)參照物? ? ? ? ? ?

? ? ? ? 長(zhǎng)整型值:

? ? ? ? ? ? duration? 屬性為動(dòng)畫(huà)持續(xù)時(shí)間

? ? ? ? ? ? 說(shuō)明:? 時(shí)間以毫秒為單位

? ? -->


4.4 rotate 畫(huà)面轉(zhuǎn)移旋轉(zhuǎn)動(dòng)畫(huà)效果

? ? ? ? android:duration="3000"? ? ? ? android:fromDegrees="0"? ? ? ? android:interpolator="@android:anim/accelerate_decelerate_interpolator"? ? ? ? android:pivotX="50%"? ? ? ? android:pivotY="50%"? ? ? ? android:toDegrees="+350"/>

? ? ? 屬性:interpolator 指定一個(gè)動(dòng)畫(huà)的插入器

? ? ? ? ? ? 在我試驗(yàn)過(guò)程中怔球,使用android.res.anim中的資源時(shí)候發(fā)現(xiàn)

? ? ? ? ? ? 有三種動(dòng)畫(huà)插入器:

? ? ? ? ? ? ? ? accelerate_decelerate_interpolator? 加速-減速 動(dòng)畫(huà)插入器

? ? ? ? ? ? ? ? accelerate_interpolator? ? ? ? ? ? ? 加速-動(dòng)畫(huà)插入器

? ? ? ? ? ? ? ? decelerate_interpolator? ? ? ? ? ? ? 減速- 動(dòng)畫(huà)插入器

? ? ? ? ? ? 其他的屬于特定的動(dòng)畫(huà)效果


? ? ? 浮點(diǎn)數(shù)型值:

? ? ? ? ? ? fromDegrees 屬性為動(dòng)畫(huà)起始時(shí)物件的角度? ?

? ? ? ? ? ? toDegrees? 屬性為動(dòng)畫(huà)結(jié)束時(shí)物件旋轉(zhuǎn)的角度 可以大于360度?


? ? ? ? ? ? 說(shuō)明:

? ? ? ? ? ? ? ? ? ? 當(dāng)角度為負(fù)數(shù)——表示逆時(shí)針旋轉(zhuǎn)

? ? ? ? ? ? ? ? ? ? 當(dāng)角度為正數(shù)——表示順時(shí)針旋轉(zhuǎn)? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? (負(fù)數(shù)from——to正數(shù):順時(shí)針旋轉(zhuǎn))?

? ? ? ? ? ? ? ? ? ? (負(fù)數(shù)from——to負(fù)數(shù):逆時(shí)針旋轉(zhuǎn))

? ? ? ? ? ? ? ? ? ? (正數(shù)from——to正數(shù):順時(shí)針旋轉(zhuǎn))

? ? ? ? ? ? ? ? ? ? (正數(shù)from——to負(fù)數(shù):逆時(shí)針旋轉(zhuǎn))? ? ?

? ? ? ? ? ? pivotX? ? 屬性為動(dòng)畫(huà)相對(duì)于物件的X坐標(biāo)的開(kāi)始位置

? ? ? ? ? ? pivotY? ? 屬性為動(dòng)畫(huà)相對(duì)于物件的Y坐標(biāo)的開(kāi)始位置


? ? ? ? ? ? 說(shuō)明:? ? ? ? 以上兩個(gè)屬性值 從0%-100%中取值

? ? ? ? ? ? ? ? ? ? ? ? 50%為物件的X或Y方向坐標(biāo)上的中點(diǎn)位置

? ? ? ? 長(zhǎng)整型值:

? ? ? ? ? ? duration? 屬性為動(dòng)畫(huà)持續(xù)時(shí)間

? ? ? ? ? ? 說(shuō)明:? ? ? 時(shí)間以毫秒為單位

? ? -->


5.如何使用XML中的動(dòng)畫(huà)效果

publicstaticAnimation loadAnimation (Context context,int id) //第一個(gè)參數(shù)Context為程序的上下文? ? //第二個(gè)參數(shù)id為動(dòng)畫(huà)XML文件的引用//例子:myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_anim);//使用AnimationUtils類的靜態(tài)方法loadAnimation()來(lái)加載XML中的動(dòng)畫(huà)XML文件


6.如何使用XML中的動(dòng)畫(huà)效果

//在代碼中定義 動(dòng)畫(huà)實(shí)例對(duì)象private Animation myAnimation_Alpha;private Animation myAnimation_Scale;private Animation myAnimation_Translate;private Animation myAnimation_Rotate;

? ? //根據(jù)各自的構(gòu)造方法來(lái)初始化一個(gè)實(shí)例對(duì)象myAnimation_Alpha=newAlphaAnimation(0.1f, 1.0f);

myAnimation_Scale =newScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,

? ? ? ? ? ? Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

myAnimation_Translate=newTranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);

myAnimation_Rotate=newRotateAnimation(0.0f, +350.0f,

? ? ? ? ? ? ? Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);


7.Android動(dòng)畫(huà)解析--JavaCode

7.1 AlphaAnimation

① AlphaAnimation類對(duì)象定義

privateAlphaAnimation myAnimation_Alpha

② AlphaAnimation類對(duì)象構(gòu)造

//第一個(gè)參數(shù)fromAlpha為 動(dòng)畫(huà)開(kāi)始時(shí)候透明度//第二個(gè)參數(shù)toAlpha為 動(dòng)畫(huà)結(jié)束時(shí)候透明度AlphaAnimation(floatfromAlpha,float toAlpha) //說(shuō)明:0.0表示完全透明,1.0表示完全不透明myAnimation_Alpha=newAlphaAnimation(0.1f, 1.0f);

③ 設(shè)置動(dòng)畫(huà)持續(xù)時(shí)間

//設(shè)置時(shí)間持續(xù)時(shí)間為 5000毫秒myAnimation_Alpha.setDuration(5000);


7.2 ScaleAnimation

① ScaleAnimation類對(duì)象定義

privateAlphaAnimation myAnimation_Alpha;

② ScaleAnimation類對(duì)象構(gòu)造

ScaleAnimation(floatfromX,floattoX,floatfromY,float toY,

? ? ? ? ? intpivotXType,floatpivotXValue,intpivotYType,float pivotYValue) //第一個(gè)參數(shù)fromX為動(dòng)畫(huà)起始時(shí) X坐標(biāo)上的伸縮尺寸? ? //第二個(gè)參數(shù)toX為動(dòng)畫(huà)結(jié)束時(shí) X坐標(biāo)上的伸縮尺寸? ? //第三個(gè)參數(shù)fromY為動(dòng)畫(huà)起始時(shí)Y坐標(biāo)上的伸縮尺寸? ? //第四個(gè)參數(shù)toY為動(dòng)畫(huà)結(jié)束時(shí)Y坐標(biāo)上的伸縮尺寸? /*說(shuō)明:

? ? ? ? ? ? ? ? ? ? 以上四種屬性值? ?

? ? ? ? ? ? ? ? ? ? 0.0表示收縮到?jīng)]有

? ? ? ? ? ? ? ? ? ? 1.0表示正常無(wú)伸縮? ?

? ? ? ? ? ? ? ? ? ? 值小于1.0表示收縮?

? ? ? ? ? ? ? ? ? ? 值大于1.0表示放大*///第五個(gè)參數(shù)pivotXType為動(dòng)畫(huà)在X軸相對(duì)于物件位置類型? //第六個(gè)參數(shù)pivotXValue為動(dòng)畫(huà)相對(duì)于物件的X坐標(biāo)的開(kāi)始位置//第七個(gè)參數(shù)pivotXType為動(dòng)畫(huà)在Y軸相對(duì)于物件位置類型? //第八個(gè)參數(shù)pivotYValue為動(dòng)畫(huà)相對(duì)于物件的Y坐標(biāo)的開(kāi)始位置myAnimation_Scale =newScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,

? ? ? ? ? ? Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

③ 設(shè)置動(dòng)畫(huà)持續(xù)時(shí)間

//設(shè)置時(shí)間持續(xù)時(shí)間為 700毫秒myAnimation_Scale.setDuration(700);


7.3 TranslateAnimation

① TranslateAnimation類對(duì)象定義

privateAlphaAnimation myAnimation_Alpha;

② TranslateAnimation類對(duì)象構(gòu)造

//第一個(gè)參數(shù)fromXDelta為動(dòng)畫(huà)起始時(shí) X坐標(biāo)上的移動(dòng)位置? ? //第二個(gè)參數(shù)toXDelta為動(dòng)畫(huà)結(jié)束時(shí) X坐標(biāo)上的移動(dòng)位置? ? ? //第三個(gè)參數(shù)fromYDelta為動(dòng)畫(huà)起始時(shí)Y坐標(biāo)上的移動(dòng)位置? ? //第四個(gè)參數(shù)toYDelta為動(dòng)畫(huà)結(jié)束時(shí)Y坐標(biāo)上的移動(dòng)位置TranslateAnimation(floatfromXDelta,floattoXDelta,floatfromYDelta,floattoYDelta)

③ 設(shè)置動(dòng)畫(huà)持續(xù)時(shí)間

//設(shè)置時(shí)間持續(xù)時(shí)間為 2000毫秒myAnimation_Translate.setDuration(2000);


7.4 RotateAnimation

① RotateAnimation類對(duì)象定義

privateAlphaAnimation myAnimation_Alpha;

② RotateAnimation類對(duì)象構(gòu)造

RotateAnimation(floatfromDegrees,floattoDegrees,intpivotXType,floatpivotXValue,intpivotYType,float pivotYValue)

? ? ? ? ? ? //第一個(gè)參數(shù)fromDegrees為動(dòng)畫(huà)起始時(shí)的旋轉(zhuǎn)角度? ? //第二個(gè)參數(shù)toDegrees為動(dòng)畫(huà)旋轉(zhuǎn)到的角度? //第三個(gè)參數(shù)pivotXType為動(dòng)畫(huà)在X軸相對(duì)于物件位置類型? //第四個(gè)參數(shù)pivotXValue為動(dòng)畫(huà)相對(duì)于物件的X坐標(biāo)的開(kāi)始位置//第五個(gè)參數(shù)pivotXType為動(dòng)畫(huà)在Y軸相對(duì)于物件位置類型? //第六個(gè)參數(shù)pivotYValue為動(dòng)畫(huà)相對(duì)于物件的Y坐標(biāo)的開(kāi)始位置myAnimation_Rotate=newRotateAnimation(0.0f, +350.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

② RotateAnimation類對(duì)象構(gòu)造

//設(shè)置時(shí)間持續(xù)時(shí)間為 3000毫秒myAnimation_Rotate.setDuration(3000);


8.如何使用Java代碼中的動(dòng)畫(huà)效果

?使用從View父類繼承過(guò)來(lái)的方法startAnimation()來(lái)為View或是子類View等等添加一個(gè)動(dòng)畫(huà)效果

publicvoidstartAnimation (Animation animation)


9.還是來(lái)個(gè)栗子吧

9.1 使用XML文件方式

①效果圖如下:

②在XML文件中定義動(dòng)畫(huà)嚼酝,前面已提及

③主界面布局,這沒(méi)啥好說(shuō)的竟坛,很簡(jiǎn)單 o(∩_∩)o

④主界面邏輯代碼闽巩,主要就是這個(gè)了,控制動(dòng)畫(huà)顯示

package com.yanis.base;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageView;publicclassAnimationActivityextendsActivityimplements OnClickListener {

? ? private ImageView imgPic;

? ? private Button btnAlpha, btnScale, btnTranslate, btnRotate;

? ? private Animation myAnimation;

? ? @Override

? ? protectedvoid onCreate(Bundle savedInstanceState) {

? ? ? ? super.onCreate(savedInstanceState);

? ? ? ? setContentView(R.layout.activity_animation);

? ? ? ? intiView();

? ? ? ? initData();

? ? }

? ? /**? ? * 初始化組件

? ? */privatevoid intiView() {

? ? ? ? imgPic = (ImageView) findViewById(R.id.imgPic);

? ? ? ? btnAlpha = (Button) findViewById(R.id.btnAlpha);

? ? ? ? btnScale = (Button) findViewById(R.id.btnScale);

? ? ? ? btnTranslate = (Button) findViewById(R.id.btnTranslate);

? ? ? ? btnRotate = (Button) findViewById(R.id.btnRotate);

? ? }

? ? /**? ? * 初始化數(shù)據(jù)

? ? */privatevoid initData() {

? ? ? ? btnAlpha.setOnClickListener(this);

? ? ? ? btnScale.setOnClickListener(this);

? ? ? ? btnTranslate.setOnClickListener(this);

? ? ? ? btnRotate.setOnClickListener(this);

? ? }

? ? @Override

? ? publicvoid onClick(View v) {

? ? ? ? switch (v.getId()) {

? ? ? ? case R.id.btnAlpha:

? ? ? ? ? ? /**? ? ? ? ? ? * 使用XML中的動(dòng)畫(huà)效果 第一個(gè)參數(shù)Context為程序的上下文 第二個(gè)參數(shù)id為動(dòng)畫(huà)XML文件的引用

? ? ? ? ? ? */? ? ? ? ? ? myAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha_anim);

? ? ? ? ? ? imgPic.startAnimation(myAnimation);

? ? ? ? ? ? break;

? ? ? ? case R.id.btnScale:

? ? ? ? ? ? myAnimation = AnimationUtils.loadAnimation(this, R.anim.scale_anim);

? ? ? ? ? ? imgPic.startAnimation(myAnimation);

? ? ? ? ? ? break;

? ? ? ? case R.id.btnTranslate:

? ? ? ? ? ? myAnimation = AnimationUtils.loadAnimation(this,

? ? ? ? ? ? ? ? ? ? R.anim.translate_anim);

? ? ? ? ? ? imgPic.startAnimation(myAnimation);

? ? ? ? ? ? break;

? ? ? ? case R.id.btnRotate:

? ? ? ? ? ? myAnimation = AnimationUtils

? ? ? ? ? ? ? ? ? ? .loadAnimation(this, R.anim.rotate_anim);

? ? ? ? ? ? imgPic.startAnimation(myAnimation);

? ? ? ? ? ? break;

? ? ? ? }

? ? }

}


9.2 使用Java代碼方式

博文?游戲開(kāi)發(fā)基礎(chǔ)(動(dòng)畫(huà))?中有實(shí)例說(shuō)明担汤,此處不再贅述涎跨。


10. 用Animation-list實(shí)現(xiàn)逐幀動(dòng)畫(huà)

栗子效果圖如下:

步驟如下:

①在res/drawable目錄添加圖片素材

②在drawable文件夾中添加動(dòng)畫(huà)Animation-list幀布局文件


? ? 根標(biāo)簽下,通過(guò)item標(biāo)簽對(duì)動(dòng)畫(huà)中的每一個(gè)圖片進(jìn)行聲明?

? ? android:duration 表示展示所用的該圖片的時(shí)間長(zhǎng)度? -->

? ? ? ? android:drawable="@drawable/cmmusic_progress_1"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_2"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_3"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_4"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_5"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_6"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_7"? ? ? ? android:duration="150">

? ? ? ? android:drawable="@drawable/cmmusic_progress_8"? ? ? ? android:duration="150">

③主界面頁(yè)面布局設(shè)置崭歧,太簡(jiǎn)單隅很,不贅述了

④主界面代碼如下:

package com.yanis.base;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;publicclassAnimationActivityextendsActivityimplements OnClickListener {

? ? private ImageView imgPic;

? ? private Button btnStart, btnStop;

? ? private AnimationDrawable animationDrawable;

? ? @Override

? ? protectedvoid onCreate(Bundle savedInstanceState) {

? ? ? ? super.onCreate(savedInstanceState);

? ? ? ? setContentView(R.layout.activity_animation);

? ? ? ? intiView();

? ? ? ? initData();

? ? }

? ? /**? ? * 初始化組件

? ? */privatevoid intiView() {

? ? ? ? imgPic = (ImageView) findViewById(R.id.imgPic);

? ? ? ? btnStart = (Button) findViewById(R.id.btnStart);

? ? ? ? btnStop = (Button) findViewById(R.id.btnStop);

? ? }

? ? /**? ? * 初始化數(shù)據(jù)

? ? */privatevoid initData() {

? ? ? ? btnStart.setOnClickListener(this);

? ? ? ? btnStop.setOnClickListener(this);

? ? ? ? //Sets a drawable as the content of this ImageView.? ? ? ? imgPic.setImageResource(R.drawable.loading_anim);

? ? ? ? //給動(dòng)畫(huà)資源賦值animationDrawable = (AnimationDrawable) imgPic.getDrawable();

? ? }

? ? @Override

? ? publicvoid onClick(View v) {

? ? ? ? switch (v.getId()) {

? ? ? ? case R.id.btnStart:

? ? ? ? ? ? animationDrawable.start();//開(kāi)始break;

? ? ? ? case R.id.btnStop:

? ? ? ? ? ? animationDrawable.stop(); //停止break;

? ? ? ? }

? ? }

}


本文地址:http://www.cnblogs.com/yc-755909659/p/4290114.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市率碾,隨后出現(xiàn)的幾起案子叔营,更是在濱河造成了極大的恐慌,老刑警劉巖所宰,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绒尊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡仔粥,警方通過(guò)查閱死者的電腦和手機(jī)婴谱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人勘究,你說(shuō)我怎么就攤上這事矮湘。” “怎么了口糕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵缅阳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我景描,道長(zhǎng)十办,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任超棺,我火速辦了婚禮向族,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘棠绘。我一直安慰自己件相,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布氧苍。 她就那樣靜靜地躺著夜矗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪让虐。 梳的紋絲不亂的頭發(fā)上紊撕,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音赡突,去河邊找鬼对扶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惭缰,可吹牛的內(nèi)容都是我干的浪南。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼从媚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼逞泄!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起拜效,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎各谚,沒(méi)想到半個(gè)月后紧憾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昌渤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年赴穗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡般眉,死狀恐怖了赵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甸赃,我是刑警寧澤柿汛,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站埠对,受9級(jí)特大地震影響络断,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜项玛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一貌笨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧襟沮,春花似錦锥惋、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至硅则,卻和暖如春淹父,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背怎虫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工暑认, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人大审。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓蘸际,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親徒扶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粮彤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容