Adnroid 三種動畫的實現

2021-07-31 12:51:02 字數 2532 閱讀 2863

在android中,一般有四種動畫效果:

1.透明度

2.旋轉

3.平移

4.縮放

動畫模式:

1.幀動畫 frame by frame

2.漸變動畫 tweened animation

3.屬性動畫 properties animation

首先來說下幀動畫。幀動畫,顧名思義,就是一幀一幀的放。可以建立乙個xml檔案,然後在animation-list標籤下,一張一張的插入,設定屬性,**如下:

<?xml version="1.0" encoding="utf-8"?>

然後在activity檔案中:

img = (imageview) findviewbyid(r.id.imageview);

animationdrawable ad = (animationdrawable) img.getdrawable();

ad.start();

漸變動畫,可以在xml檔案裡定義效果:

<?xml version="1.0" encoding="utf-8"?>

上面的**是乙個旋轉的動畫,各個引數中:

duration:動畫的持續時間

fromdegrees 從哪個角度開始旋轉

todegrees 旋轉結束時的角度

pivotx 旋轉點x軸座標,可以是int,float或百分比型別

pivoty 旋轉點y軸座標,同上

activity**:

animation animation = animationutils.loadanimation(mainactivity.this,r.anim.rotate);  

ivgirl.startanimation(animation);

詳細的例子請看:

也可以在activity中直接寫**,比如說透明度動畫:

alphaanimation aa = new alphaanimation(1.0f,0.5f);

aa.setduration(2000);//ms:毫秒 該動畫的變化過程將會在2s中內完成

aa.setfillafter(true);//動畫效果結束後 保持當前效果

/**重複的個數*/

aa.setrepeatcount(1);

/*** 重複的模式

* animation.restart:重新開始

* animation.reverse:反向*/

aa.setrepeatmode(animation.reverse);

/**開始動畫*/

img.startanimation(aa);

旋轉動畫就是rotateanimation;平移動畫:translateanimation;縮放動畫:scaleanimation

具體引數和xml檔案裡介紹的差不多。

此外,可以用動畫集合裝載這些動畫並實現 animationset as = new animationset(true); 用add方法as.add(動畫變數名);img.startanimation(as);

屬性動畫(properties animation)

屬性動畫實現的效果和漸變動畫差不多,但是有一點根本性的差別:漸變動畫不會真正改變控制項的位置,而屬性動畫會真正的改變控制項的位置。

屬性動畫物件objectanimator,該物件的構造引數:第乙個為目標控制項,第二個為要執行的動畫的名稱,第三個為數值(可以任意填多少個)。

objectanimator animator = objectanimator.offloat(tv,"alpha",1,0,1);  

animator.setduration(2000);

animator.start();

上面**就是執行乙個tv控制項由不透明變成透明再變成不透明的動畫效果。setduration(2000)表示該動畫一共執行2s完成

同樣,屬性動畫也可以裝進動畫集合,一起或分步執行:

objectanimator oa = objectanimator.offloat(btn_tomain,"rotation",180.0f,360.0f);

objectanimator oa1 = objectanimator.offloat(btn_tomain,"alpha",0.0f,1.0f);

animatorset as = new animatorset();

as.setduration(1000);

as.playtogether(oa,oa1);

as.start();

表示一起執行。

as.play(oa).after(oa1)

表示oa在oa1後執行。

三種實現執行緒的方法

1.通過繼承thread實現執行緒 public class mythread extends thread public static void main string args 2.通過實現runnable實現執行緒 public class runnabledemo implements ru...

Android Button實現功能的三種方法

android button實現功能的三種方法 1.一次性 使用的button,一般採用匿名內部類 button button button findviewbyid r.id.button button.setonclicklistener new onclicklistener 該方法適用於bu...

三種實現委託的方法

先看 申明乙個帶引數的委託 delegate void delegatetest string name class program testdg2 匿名方法 delegatetest testdg3 x testdg3 lambda 表示式 console.readkey 建立乙個靜態方法,傳入委...