Android 動畫

一吭露、Drawable目錄(res/drawable)

1、bitmap 孝冒,位圖

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

android:antialias="true"

android:dither="true"

android:src="@drawable/wang"

android:tileMode="mirror"> ??</bitmap>

tileMode: 平鋪屬性? antialias:抗鋸齒? dither:抗抖動

mirror 鏡像? 圖片有倒立面 ? ?repeat 重復(fù)? 圖片重復(fù)填充

clamp? 邊緣拉伸? 效果奇怪? disable 默認(rèn) 圖片默認(rèn)顯示


2柬姚、clip,圖片裁剪

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

android:drawable="@color/colorPrimary"

android:clipOrientation="horizontal"

android:gravity="left"> </clip>

clipOrientation:裁剪方向? gravity:裁剪起始位置

在代碼實現(xiàn)裁剪庄涡,通過調(diào)用setLevel()量承,取值0~10000,0完全不見穴店,10000完全顯示

mDrawable= (ClipDrawable)mImageView.getDrawable();

mDrawable.setLevel(5000);


3撕捍、inset,插入圖片

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

android:drawable="@color/colorPrimary"

android:insetLeft="50dp"

android:insetRight="50dp"

android:insetTop="50dp"

android:insetBottom="50dp"> </inset>

邊距:insetLeft泣洞,insetRight忧风,insetTop,insetBottom


4球凰、layer狮腿,圖層,列表最后一個繪制在最上層

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:left="20dp" android:top="20dp">??

<bitmap ??android:gravity="center" ??android:src="@drawable/wang"/>

</item>

<item android:left="20dp" android:top="20dp">

<bitmapandroid:gravity="center"android:src="@drawable/wang"/>

</item> ? </layer-list>


5呕诉、lever-list 缘厢,等級列,顯示對應(yīng)等級的圖片

<level-list xmlns:android="http://schemas.android.com/apk/res/android">

<item?android:drawable="@drawable/close"?android:minLevel="6"?android:maxLevel="10" />

<item?android:drawable="@drawable/open"?android:minLevel="12"?android:maxLevel="20"/>

</level-list> ?

代碼實現(xiàn):

<ImageView ??android:id="@+id/level" ??android:src="@drawable/level"

android:layout_width="wrap_content" ? ?android:layout_height="wrap_content" />

mImageView.setImageLevel(8);


6甩挫、scale贴硫,圖片縮放

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

android:drawable="@drawable/wang" android:scaleGravity="center"

android:scaleWidth="50%" ??android:scaleHeight="50%" ?> </scale>


7、shape伊者,圖片形狀

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

android:shape="rectangle">

<solid ?android:color="@color/colorAccent"/>

<corners ?android:radius="32dp"/>

<stroke ??android:width="12dp" ??android:color="@color/colorPrimary"

android:dashGap="12dp" ? ?android:dashWidth="12dp"/> ?</shape>


8英遭、selector拖刃,監(jiān)聽控件狀態(tài)

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

<item ?android:state_pressed="true" ?android:drawable="@drawable/wang0"/>

<item ?android:state_focused="true" ?android:drawable="@drawable/wang5"/>

<item ?android:drawable="@color/colorPrimary"/> ? </selector>


9、shape和selector結(jié)合使用

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

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

<item>

<shape android:shape="rectangle">

<corners /> <stroke /> <solid />

</shape>

</item>

</selector>

10贪绘、transition 兑牡,兩張圖片間透明度的漸變

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

<item ?android:drawable="@drawable/close">

<item ?android:drawable="@drawable/open"> </transition>


11、animation-list 逐幀動畫

<animation-list ?xmlns:android="http://schemas.android.com/apk/res/android">

<item ?android:drawable="@drawable/v_anim1" ?android:duration="300"/>

<item ?android:drawable="@drawable/v_anim2" ?android:duration="300"/>

<item ?android:drawable="@drawable/v_anim3" ?android:duration="300"/>

</animation-list>

代碼實現(xiàn):

播放動畫


控制動畫的播放與暫停

二税灌、Interpolator 補(bǔ)間動畫(res/anim)

1均函、AlphaAnimation

xml實現(xiàn)


代碼實現(xiàn)

2、ScaleAnimation


xml實現(xiàn)
代碼實現(xiàn)

3菱涤、TranslateAnimation


xml實現(xiàn)
代碼實現(xiàn)

4苞也、RotateAnimation


xml實現(xiàn)
代碼實現(xiàn)

5、插值器(負(fù)責(zé)補(bǔ)間動畫的平滑過渡)

xml文件:android:interpolator="@android:anim/accelerate_decelerate_interpolator"


插值器家族
Interpolator負(fù)責(zé)控制動畫的變化速度

6粘秆、直接使用插值器

為動畫設(shè)置插值器

7如迟、動畫執(zhí)行監(jiān)聽回調(diào)

設(shè)置動畫執(zhí)行監(jiān)聽器

8、ViewPropertyAnimator的用法

view中的方法攻走,例如:textview.animate().alpha(0f);?

注意:在xml里配置動畫屬性的時候殷勘,有很多屬性沒有在輸入?yún)?shù)列里提示,需要自己手寫輸入昔搂,例如時間 android:duration=""玲销,單位毫秒,根據(jù)自己的需求手動輸入各種隱藏屬性摘符。


三贤斜、Property Animator 屬性動畫(res/animator)

1、ValueAnimator

基本用法逛裤,四種類型 of(int,float,argb,object):

ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 100);

這里引入TypeEvaluator(實現(xiàn)類IntEvaluator ,FloatEvaluator,ArgbEvaluator),Evaluator用來控制屬性動畫如何計算每時刻的屬性值

2瘩绒、ObjectAnimator (ValueAnimator子類)

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(viewGroup, "translationY", toY);

objectAnimator.setDuration(500).start();

xml中定義的動畫
在代碼中調(diào)用xml中的動畫效果

3、動畫同時執(zhí)行

同時執(zhí)行動畫方案一
同時執(zhí)行動畫方案二

4带族、動畫執(zhí)行監(jiān)聽回調(diào)

設(shè)置動畫執(zhí)行監(jiān)聽器

4锁荔、自定義動畫效果

泛型動畫效果

四、Transistion Animation 過渡動畫(res/transition )

簡介:本質(zhì)是屬性動畫炉菲,實現(xiàn)了二次封裝堕战,方便開發(fā)者實現(xiàn)Activity或View的過渡動畫效果,過渡動畫的使用很簡單拍霜,首先需要準(zhǔn)備過渡動畫前后兩個不同的布局文件嘱丢,這兩個布局文件的根布局具有相同的id屬性值。

1祠饺、過渡動畫


過渡動畫Manager
過渡動畫效果

2越驻、實現(xiàn)步驟:


代碼實現(xiàn)

五、ColorSelect(res/color)

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

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="500">

<item android:state_pressed="true"?android:color="@color/color_fff" />

</selector>


六、漣漪效果(Ripple)

有邊界的漣漪效果:

android:background="?android:attr/selectableItemBackground"

無邊界的漣漪效果:

android:background="?android:attr/selectableItemBackgroundBorderless"

自定義漣漪效果:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/color_333">

<item>

????<shape android:shape="rectangle">

????????<corners android:radius="@dimen/dimen_px_60" />

????????<solid android:color="@color/color_fff"/>

????????<stroke android:color="@color/color_c70017"?

????????????????????android:width="@dimen/dimen_px_01"/>

????</shape>

</item>

記得設(shè)置控件為可點擊狀態(tài):

android:clickable="true"


七缀旁、顯示效果(Reveal)

Animator animator = ViewAnimationUtils.createCircularReveal(mImageView,centerX,centerY,startRadius,endRadius);

animator.setDuration(1000);

animator.start();


八记劈、常見問題

Selector的item狀態(tài)失效,情況1:item的順序問題并巍,默認(rèn)的顯示效果需要放在最后目木。情況2:View的本身是否有item中監(jiān)聽的狀態(tài),如state_check懊渡,Checkbox有該屬性刽射,而Button沒有該屬性,所以Checkbox生效剃执,而Button則不生效誓禁。情況3:view的本身有item中監(jiān)聽的狀態(tài),但設(shè)置后不生效肾档,需要為View設(shè)置對應(yīng)的監(jiān)聽摹恰,如state_press,TextView本身有該屬性怒见,但按下沒有反應(yīng)俗慈,為TextView設(shè)置View.OnClickListener后,TextView的state_press狀態(tài)監(jiān)聽生效速种,或者在控件添加android:clickable="true"屬性姜盈。

動畫執(zhí)行后遺留問題,建議使用最新的動畫API配阵,如:Animator(三) > Animation(四) > Interpolator(二)。

動畫移動的參數(shù)坐標(biāo)是以控件左上角坐標(biāo)為基準(zhǔn)示血。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棋傍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子难审,更是在濱河造成了極大的恐慌瘫拣,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件告喊,死亡現(xiàn)場離奇詭異麸拄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)黔姜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門拢切,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秆吵,你說我怎么就攤上這事淮椰。” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵主穗,是天一觀的道長泻拦。 經(jīng)常有香客問我,道長忽媒,這世上最難降的妖魔是什么争拐? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮晦雨,結(jié)果婚禮上陆错,老公的妹妹穿的比我還像新娘。我一直安慰自己金赦,他們只是感情好音瓷,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夹抗,像睡著了一般绳慎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上漠烧,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天杏愤,我揣著相機(jī)與錄音,去河邊找鬼已脓。 笑死珊楼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的度液。 我是一名探鬼主播厕宗,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堕担!你這毒婦竟也來了已慢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤霹购,失蹤者是張志新(化名)和其女友劉穎佑惠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體齐疙,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡膜楷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贞奋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赌厅。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖忆矛,靈堂內(nèi)的尸體忽然破棺而出察蹲,到底是詐尸還是另有隱情请垛,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布洽议,位于F島的核電站宗收,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏亚兄。R本人自食惡果不足惜混稽,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望审胚。 院中可真熱鬧匈勋,春花似錦、人聲如沸膳叨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽菲嘴。三九已至饿自,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間龄坪,已是汗流浹背昭雌。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留健田,地道東北人烛卧。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像妓局,于是被迫代替她去往敵國和親总放。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

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

  • 轉(zhuǎn)載自Keegan小鋼并標(biāo)明原文鏈接:http://keeganlee.me/post/android/20150...
    堅持編程_lyz閱讀 1,117評論 0 1
  • XML bitmap XML 位圖是在 XML 中定義的資源跟磨,指向位圖文件间聊。實際上是原始位圖文件的別名。XML 可...
    李建彪閱讀 1,717評論 0 3
  • //通過獲得資源文件進(jìn)行設(shè)置抵拘。根據(jù)不同的情況R.color.red也可以是R.string.red或者R.draw...
    gogoingmonkey閱讀 1,933評論 0 2
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,758評論 25 707
  • 戊走也是我的筆名,希望不要引起誤會型豁。戊走的作品也是本人昧旦木蘭花慢原創(chuàng)僵蛛。
    昧旦木蘭花慢閱讀 123評論 0 0