多媒體之動(dòng)畫(huà)詳解
補(bǔ)間動(dòng)畫(huà)(Tween Animation)
Alpha動(dòng)畫(huà)(透明度動(dòng)畫(huà))
屬性
//透明度范圍0.0-1.0
android:fromAlpha="0.1"
android:toAlpha="1.0"
//動(dòng)畫(huà)播放持續(xù)時(shí)間1000毫秒
android:duration="1000"
scale動(dòng)畫(huà)(縮放動(dòng)畫(huà))
屬性
//縮放比例
android:fromXScale="0.5"
android:toXScale="1.0"
android:fromYScale="0.5"
android:toYScale="1.0"
//縮放點(diǎn)坐標(biāo)
android:pivotX="50%"
android:pivotY="50%"
trans動(dòng)畫(huà)(平移動(dòng)畫(huà))
屬性
//平移距離(像素為單位)
android:fromXDelta="0"
android:toXDelta="100"
android:fromYDelta="0"
android:toYDelta="100"
//停留在最后一幀
android:fillAfter="true"
rotate動(dòng)畫(huà)(旋轉(zhuǎn)動(dòng)畫(huà))
屬性
//旋轉(zhuǎn)角度
android:fromDegrees="0"
android:toDegrees="360"
//旋轉(zhuǎn)點(diǎn)坐標(biāo)(動(dòng)畫(huà)的中心點(diǎn))
android:pivotX="50%"
android:pivotY="50%"
組合動(dòng)畫(huà)
屬性
<alpha p=""
android:toAlpha="1.0"
android:duration="2000"/>
<scale< p="">
android:startOffset="2000"
android:fromXScale="1"
android:toXScale="0.5"
android:fromYScale="1"
android:toYScale="0.5"
android:duration="2000"/>
注意:動(dòng)畫(huà)除了可以作用于ImageView控件,還可以作用于Activity組件。
//1.進(jìn)來(lái)的activity的動(dòng)畫(huà)
//2.出去的activity的動(dòng)畫(huà)
overridePendingTransition(R.anim.ani_alpha, R.anim.ani_trans);
逐幀幀動(dòng)畫(huà):由多張圖片組成,每一個(gè)幀播放一張圖片
自定義動(dòng)畫(huà):SurfaceView
自定義動(dòng)畫(huà)可以運(yùn)行在子線程中,能夠保證動(dòng)畫(huà)效果的流暢性。
通常android游戲開(kāi)發(fā)都是基于SurfaceView的。且該類(lèi)自帶雙緩沖機(jī)制,能保證畫(huà)面的流暢。
Holder類(lèi)介紹
添加回調(diào)方法
Holder holder = this.getHolder();
holder.addCallBack(this);
獲取畫(huà)布對(duì)象
Canvas canvas = holder.lockCanvas();
paint(canvas);
logic();
holder.unlockCanvasAndPost(canvas);
裁剪畫(huà)布
//保存畫(huà)布
canvas.save();
//設(shè)置裁剪區(qū)域
canvas.clip(left, top, right, bottom);
//在已經(jīng)被裁剪的區(qū)域上繪制圖片
canvas.drawBitmap(bitmap, 10, 10, paint);
//恢復(fù)畫(huà)布
canvas.restore();
封裝動(dòng)畫(huà)類(lèi)