9 21 Android中的動畫 筆記

2021-07-15 19:57:32 字數 4190 閱讀 1253

android中的動畫

android中提供三種動畫型別:

<1>view animation(檢視動畫):

1>tween(補間動畫)

以下動畫配置檔案放在 res/anim 下

(1)漸變動畫

屬性:android:fromalpha 開始漸變的值(0-1)

android:toalpha 結束漸變的值(0-1)

ndroid:duration 時間(毫秒)

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

imageview.startanimation(animation);

(2)縮放動畫

屬性:fromxscale 起始縮放的比例x座標 0表示縮放到最小

fromyscale 起始縮放的比例y座標 0表示縮放到最小

toxscale 結束縮放的比例x座標 1表示縮放到的原始大小

toyscale 結束縮放的比例y座標 1表示縮放到的原始大小

pivotx 縮放相對於開始x座標的位置 50%表示一半

pivoty 縮放相對於開始y座標的位置 50%表示一半

duration 時間

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

imageview.startanimation(animation);

(3)移動動畫

屬性:fromxdelta 起始位置x座標 0 表示元件所在的原始位置x

fromydelta 起始位置y座標 0 表示元件所在的原始位置y

toxdelta 要移動的x值

toydelta 要移動的y值

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

imageview.startanimation(animation);

(4)旋轉動畫

屬性:fromdegrees 開始的角度 0 表示原始位置的角度

todegrees 要旋轉的角度 360表示順時針,-360表示逆時針

pivoty 旋轉的支點y 50%表示元件的y的中間位置

pivotx 旋轉的支點x 50%表示元件的x的中間位置

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

imageview.startanimation(animation);

2>frame(幀動畫)

實現乙個frame動畫:

在res/drawable下建立乙個配置檔案:比如,anim_list.xml

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

在imageview元件的布局檔案中通過src屬性引用 動畫檔案:

drawable animation

selector/shape/layer

(見ui元件部分課程筆記)

<3>property animation(屬性動畫)

屬性動畫是android3.0後新增加動畫系統,可以作用於所有元件。

通常設定的屬性(propertyname):

alpha 透明度(0-1)

scalex scaley 縮放

rotationx rotationy 旋轉

translationx translationy 移動

objectanimator 作用於某乙個物件上的動畫系統

常用方法:

offloat(target,propertyname,float... values)

ofint(target,propertyname,float... values)

target:目標元件

propertyname:動畫屬性

values:動畫效果的值

public void startclick(view view)

//元件多個動畫屬性

private void propertyvaluesholder(view view)

valueanimator的使用

valueanimator首先關注的是動畫屬性值的本身,再通過監聽動畫的更新來把動畫的值作用

於乙個元件上。與objectanimator的區別是,objectanimator是直接把動畫屬性和值

作用於乙個元件上來完成。

//valueanimator

public void musicstackclick(view view)

});va.start();

}監聽屬性動畫的事件過程:

objectanimator anim = objectanimator.offloat(view, "alpha", 1f, 0f).setduration(500);

anim.addlistener(new animator.animatorlistener()

public void onanimationend(animator animation) {}

public void onanimationcancel(animator animation) {}

public void onanimationrepeat(animator animation) {}

});}

也可以使用animatorlisteneradapter來重寫需要的方法

public void onanimationend(animator animation) {}

private void objectanimatorlistener(view view)

}});

oa.start();

使用animatorset組合多個動畫

objectanimator o1 = objectanimator.offloat(v,"translationx",0f,200f);

//新增插值器(加速度)

o1.setinterpolator(new accelerateinterpolator());

objectanimator o2 = objectanimator.offloat(v,"translationy",0f,200f);

//新增插值器

o2.setinterpolator(new accelerateinterpolator());

objectanimator o3 = objectanimator.offloat(v,"rotation",0f,360f);

//新增插值器(結束後抖一抖)

o3.setinterpolator(new bounceinterpolator());

animatorset set = new animatorset();

set.setduration(1000);

// set.playtogether(o1,o2,o3);//同時執行

// set.setstartdelay(1000); //延遲多長時間執行

//先執行o1和o2,再執行o3

set.play(o1).with(o2);

set.play(o3).after(o2);

set.start();

使用xml配置檔案來設定屬性動畫

在res/animator/下建立配置檔案:

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

然後在**中載入xml配置檔案後,啟動動畫:

//載入xml配置的屬性動畫檔案

animator a = animatorinflater.loadanimator(this,r.animator.alpha_animator);

a.settarget(view); //設定動畫要應用到的目標元件

a.start();

面試題:問android中有幾種動畫型別?三種動畫型別分別是什麼?

<1>view animation(檢視動畫)

<2>drawable animation(也可以稱為檢視動畫)

<3>property animation(屬性動畫)

jquery中stop停止動畫筆記

jquery stop 方法用於停止動畫或效果,在它們完成之前。stop 方法適用於所有 jquery 效果函式,包括滑動 淡入淡出和自定義動畫。語法 selector stop stopall,gotoend 可選的 stopall 引數規定是否應該清除動畫佇列。預設是 false,即僅停止活動的...

android中的動畫

幀動畫 屬性動畫 view動畫 補間動畫 幀動畫 1 建立資料夾drawable 2 在資料夾drawable建立xml檔案 3 布局檔案 activity public class mainactivity extends activity public boolean ontouchevent ...

Android中的動畫效果

alphaanimation animation new alphaanimation 0,1 animation.setduration 1000 view.startanimation animation 從0不顯示到1全顯示 rotateanimation animation new rota...