亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

android之動畫實現(一)(四種基本補間動畫)

2019-11-09 18:32:02
字體:
來源:轉載
供稿:網友

android動畫有補間動畫也有屬性動畫,還有布局動畫等。今天就先從簡單的四種基本補間動畫說起。 補間動畫有:平移,縮放,旋轉,透明。使用方式有兩種:xmljava代碼。

四種動畫的共同屬性說明:

android:fillAfter 表示動畫結束后是否停留在最后一幀,即停在結束位置; android:duration表示動畫的持續時間; android:interpolator表示動畫的運行規律(插值器),比如先快后慢或者先慢后快等; android:repeatCount 表示重復次數,默認值是0,代表重復1次;如果值是repeatCount=n代表重復 n+1次;值為-1或者infinite時,表示補間動畫永不停止; android:repeatMode 設置重復的模式,默認是restart,當repeatCount的值大于0或者為-1或infinite時才有效: 1.如果是:restart,表示每次執行完都會從頭開始; 2.如果是:reverse,表示第一次從頭開始,第二次反過來,第三次從頭開始,第四次反過來,即偶數次是反著的; 3.舉例說明,從位置A平移到B: a.如果是restart,那么每次都是A-B,瞬間回到A然后又A-B,不斷重復; b.如果是reverse,那么第一次是A-B,第二次是B-A,第三次是A-B,第四次是B-A,這樣循環下去,結果是就是來回移動了;

四種補間動畫單獨說明:

一.平移動畫TranslateAnimation 1.XML實現方式(res/anim,沒有此文件夾自己建立):

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:repeatCount="infinite" android:repeatMode="reverse" android:toXDelta="50%p"/>使用:Animation tran = AnimationUtils.loadAnimation(this,R.anim.translate);translate.startAnimation(tran);

屬性說明: android:fromXDelta,平移的起點x方向坐標(android:toXDelta和Y方向的同理): 1.如果值是數值類型,即20或者25.0之類的,譬如50表示以當前View左上角坐標加50px為初始點; 2.如果值是百分比類型,即20%或者50%之類的,50%表示以當前View的左上角加上當前View寬高的50%做為初始點; 3.如果是父值的類型,即-100%p或者100%p之類的,50%p表示以當前View的左上角加上父控件寬高的50%做為初始點;

2.代碼實現方式:

Animation tran1 = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,0,Animation.RELATIVE_TO_PARENT,1,Animation.RELATIVE_TO_PARENT,0,Animation.RELATIVE_TO_PARENT,0);tran1.setDuration(2000);translate.startAnimation(tran1);

8個參數依次:起點x的坐標參照,起點x的坐標值,終點x的坐標參照,終點x的坐標值,起點y的坐標參照,起點y的坐標值,終點y的坐標參照,終點y的坐標值; 坐標參照是用來設置位置的,比如: RELATIVE_TO_PARENT(XML中父值的類型):相當于用XML時的“android:toXDelta=”50%p”中的p,表示以父控件為參照,1代表100%p,0.5代表50%p,Y方向同理; RELATIVE_TO_SELF(XML中百分比類型):相當于XML時的“android:toXDelta=”50%”,以自身為參照,1相當于XML中的100%,0.5相當于XML中的50%,Y方向同理; ABSOLUTE(XML中數值類型):相當于XML中的“android:toXDelta=”50”; 即三種參數其實跟XML中的使用方式是對應的,如果不懂看XML方式來理解就懂了。 如果在代碼中不寫坐標參照即只有4個參數值,默認是ABSOLUTE方式。

二:縮放動畫 1.XML實現方式:

<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:repeatCount="infinite" android:repeatMode="reverse" android:toXScale="50%p" android:toYScale="50%p" />使用:Animation scaleAn = AnimationUtils.loadAnimation(this,R.anim.scale);scale.startAnimation(scaleAn);

android:fromXScale,縮放開始時的x方向大?。?android:toXScale,縮放開始時的y方向大小; android:pivotX,縮放的中心的x坐標(即以某個點為中心進行縮放); 以上3個屬性y方向的同理。 android:fromXScale和android:toXScale,還有Y方向的屬性值也有三種形式(以android:fromXScale舉例): 1.如果值是數值類型,即1或者2之類的表示縮放動畫開始時的寬是自身寬的1或者2倍; 2.如果值是百分比類型,即20%或者50%之類的,表示縮放動畫開始時的寬是自身寬的20%或者50%; 3.如果是父值類型,即50%p或者100%p之類的,表示縮放動畫開始時的寬是父控件寬的50%或者100%; android:pivotX的屬性值有兩種形式: 1.如果值是百分比類型,即20%或者50%之類的,表示縮放的中心點x坐標在自身左上角坐標+自身寬度的20%或者50%處; 2.如果是父值類型,即50%p或者100%p之類的,表示縮放的中心點x坐標在自身左上角坐標+父控件寬度的50%或者100%處; 補充:如果是數值類型,比如1或者2,無效,無論是多少,都表示縮放的中心點是自身的左上角。 2.代碼實現方式:

Animation scale1 = new ScaleAnimation(1f,0.5f,1f,0.5f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);scale1.setDuration(2000);scale.startAnimation(scale1);

8個參數依次:起始寬度,結束寬度,縮放起始高度,結束高度,縮放中心點x方向的坐標參照,縮放中心點的x坐標,縮放中心點y方向的坐標參照,縮放中心點的y坐標; 前4個參數只能是float格式,效果都是自身寬高的倍數,比如例子中表示,起始寬度是自身寬度1倍,結束寬度是自身一半; 后面4個參數中三種寫法: Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f,表示中心點是自身左上角坐標+父控件寬高的一半; Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f,表示中心點是自身左上角坐標+自身寬高的一半; Animation.ABSOLUTE,100,Animation.ABSOLUTE,100,表示中心點是自身左上角坐標+100;

三.透明動畫 1.XML實現方式:

<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="1" android:repeatCount="-1" android:repeatMode="reverse" android:toAlpha="0.5"></alpha>

android:fromAlpha和android:toAlpha分別表示開始和結束時的透明度,值只有一種格式,0-1之間的數,1表示不透明,0表示完全透明,這個比較簡單。 2.代碼中設置:

Animation alpha1 = new AlphaAnimation(1,0);alpha1.setDuration(2000);alpha.startAnimation(alpha1);

透明動畫比較簡單,兩個參數,一個是開始的透明度,一個是結束的透明度,值與在XML中寫的格式相同。

四,旋轉動畫 1.XML實現方式:

<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:repeatCount="infinite" android:repeatMode="reverse" android:toDegrees="-90"></rotate>

android:fromDegrees和android:toDegrees分別表示起始和結束的角度,值只能是一種格式,數值類型,可以說int也可以是float,代表角度。 2.代碼實現方式:

Animation rotateAn = new RotateAnimation(90,-90,Animation.ABSOLUTE,100,Animation.ABSOLUTE,100);rotate.startAnimation(rotateAn);

前兩個參數表示開始角度和結束角度,沒啥好說的。 后面4個參數中三種寫法: Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f,表示旋轉中心點是自身左上角坐標+父控件寬高的一半; Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f,表示旋轉中心點是自身左上角坐標+自身寬高的一半; Animation.ABSOLUTE,100,Animation.ABSOLUTE,100,表示旋轉中心點是自身左上角坐標+100;

最后,匯總:上面四種動畫都是單獨使用的,我們如果想混合使用,比如變大的同時變透明,那就得組合動畫了,組合動畫也是一樣的可以XML也可以代碼寫: 1.XML實現方式:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:interpolator="@android:anim/cycle_interpolator" android:shareInterpolator="true"> <translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="50%p" android:toYDelta="0" /> <alpha android:duration="1000" android:fromAlpha="1" android:repeatCount="1" android:repeatMode="reverse" android:toAlpha="0.5" /> <scale android:fromXScale="1" android:fromYScale="0.5" android:pivotX="50%" android:pivotY="50%" android:repeatCount="1" android:repeatMode="reverse" android:toXScale="0.5" android:toYScale="0.5" /></set>

android:shareInterpolator表示set標簽下的多個動畫共用一個插值器,如果不需要,那就單獨設置插值器。 2.代碼中設置:

AnimationSet animationSet = new AnimationSet(true);//共享插值器animationSet.addAnimation(scale);animationSet.addAnimation(alpha);animationSet.addAnimation(rotate);animationSet.addAnimation(translate);view.startAnimation(animationSet);

很簡單,用set將各個單獨的動畫加進去,然后start就行了。

四種基本補間動畫基本說完了,還是很簡單的,不過它并不完美,比如如果一個按鈕設置了點擊事件,然后你平移了它,此時你點擊新的位置的它,是不會有反應的,因為它還在原來的位置,只是我們肉眼看著它移走了,實際上它還是沒動的,所以此時就需要屬性動畫了,屬性動畫在后面會再補上。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产激情999| 国产精品高潮呻吟久久av无限| 日本免费久久高清视频| 国产精品精品视频一区二区三区| 欧美视频免费在线观看| 精品久久久久久久久久| 欧美日韩国产va另类| 成人精品久久一区二区三区| 91网站在线看| 一本一道久久a久久精品逆3p| 亚洲美女喷白浆| 国产成人一区二区三区电影| 日韩欧美在线观看视频| 伊人伊人伊人久久| 午夜精品免费视频| 亚洲成色777777女色窝| xxx一区二区| 国产精品久久久久久久久久久不卡| 久久精品国产久精国产一老狼| 日本最新高清不卡中文字幕| 九九久久国产精品| 国产亚洲精品久久久优势| 综合欧美国产视频二区| 日韩成人在线视频观看| 久久精品久久久久久国产 免费| 久久久人成影片一区二区三区观看| 97久久超碰福利国产精品…| 亚洲男人天堂网| 国产成人精品电影久久久| 精品视频www| 欧美成人免费网| 97人人模人人爽人人喊中文字| 精品久久香蕉国产线看观看亚洲| 欧美一级电影在线| 国产又爽又黄的激情精品视频| 日韩欧美在线字幕| 欧美—级a级欧美特级ar全黄| 5278欧美一区二区三区| 国产精品欧美风情| 欧洲亚洲免费在线| 国产精品久久久久久久久久免费| 国内精品模特av私拍在线观看| 亚洲人成欧美中文字幕| 欧美日韩成人在线播放| 不卡av电影院| 国产精品久久久久久久久粉嫩av| 国产精品中文在线| 日韩在线视频免费观看| 亚洲精品国偷自产在线99热| 国产极品jizzhd欧美| 国产91热爆ts人妖在线| 国产精品视频免费观看www| 精品国产91久久久久久老师| 97在线看免费观看视频在线观看| 国产精品流白浆视频| 992tv成人免费影院| 日韩欧美一区二区三区| 午夜精品一区二区三区在线视| 久久久久久久久久久网站| 国产精品一区二区三区成人| 亚洲直播在线一区| 国产精品96久久久久久又黄又硬| 日韩精品黄色网| 国产网站欧美日韩免费精品在线观看| 欧美精品久久久久久久久久| 欧美日韩国产成人| 91av免费观看91av精品在线| 亚洲性视频网址| 亚洲黄色免费三级| 国产日韩在线观看av| 国产精品私拍pans大尺度在线| 亚洲无限乱码一二三四麻| 亚洲桃花岛网站| 国产在线观看一区二区三区| 成人免费在线视频网址| 九九久久久久久久久激情| 69**夜色精品国产69乱| 亚洲free性xxxx护士白浆| 欧美精品在线免费| 91精品视频免费| 国产精品久久久久久久av大片| 欧美丰满少妇xxxxx| 九九热最新视频//这里只有精品| 欧美极度另类性三渗透| 午夜精品久久久久久久白皮肤| 日本久久中文字幕| 日韩电影在线观看永久视频免费网站| 亚洲春色另类小说| 疯狂做受xxxx欧美肥白少妇| 91久久精品日日躁夜夜躁国产| 亚洲最大成人免费视频| 日韩精品999| 日韩经典一区二区三区| 久久久成人的性感天堂| 亚洲女人天堂色在线7777| 亚洲欧美一区二区激情| 欧美不卡视频一区发布| 日韩欧美高清在线视频| 亚洲精品国产欧美| 亚洲深夜福利视频| 亚洲精品综合精品自拍| 日韩av最新在线观看| 97在线视频免费观看| 亚洲第一视频在线观看| 欧美激情视频网站| 欧美日韩国产色视频| 国产精彩精品视频| 日韩不卡在线观看| 欧美成人精品三级在线观看| 成人在线视频网站| 欧美贵妇videos办公室| 亚洲自拍在线观看| 国产不卡一区二区在线播放| 性金发美女69hd大尺寸| 欧美激情久久久久| 午夜精品视频在线| 国产aaa精品| 国产午夜精品一区理论片飘花| 91久久在线观看| 26uuu另类亚洲欧美日本一| 日韩精品亚洲元码| 国产精品久久久亚洲| 欧美成人h版在线观看| 亚洲精品久久久久久久久久久久| 日韩一区在线视频| 亚洲福利视频专区| 欧美视频13p| 亚洲香蕉成人av网站在线观看| 欧美大片免费观看在线观看网站推荐| 懂色av中文一区二区三区天美| 亚洲第一福利视频| 亚洲国产精品推荐| 国产精品免费视频xxxx| 欧美疯狂做受xxxx高潮| 亚洲第一av网| 亚洲尤物视频网| 中文字幕亚洲自拍| 欧美黑人巨大精品一区二区| 国产剧情久久久久久| 久久在线视频在线| 欧美日韩国产区| 日韩一区二区福利| 日本19禁啪啪免费观看www| 国产精品久久激情| 91亚洲国产精品| 久久精品视频免费播放| 欧洲日韩成人av| 日本久久久a级免费| 日韩电影中文字幕| 欧美插天视频在线播放| 亚洲色图50p| 色老头一区二区三区| 精品中文字幕乱| 欧美日韩国产成人在线观看| 亚洲成人久久久久| 免费91麻豆精品国产自产在线观看| 国产美女久久精品香蕉69| 欧美一区二区三区免费视| 日韩在线视频观看| 91精品国产91久久久久福利| 国产欧美精品一区二区三区-老狼| 国产免费亚洲高清| 久久国产精彩视频| 亚洲欧美日韩另类|