這篇文章主要介紹在xml中如何實(shí)現(xiàn)動畫,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)主營囊謙網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),囊謙h5微信小程序搭建,囊謙網(wǎng)站營銷推廣歡迎囊謙等地區(qū)企業(yè)咨詢
1. Selector
Android中的Selector主要是用來改變ListView和Button控件的默認(rèn)背景。
1.創(chuàng)建mylist_view.xml文件
首先在res目錄下新建drawable文件夾,再在新建的drawable文件夾中新建mylist_view.xml,其目錄結(jié)構(gòu)為:res/drawable/mylist_view.xml。
2.根據(jù)具體需求編輯mylist_view.xml文件
新建mylist_view.xml文件后,在沒有添加任何屬性時其內(nèi)部代碼結(jié)構(gòu)為:
下面就可以根據(jù)項(xiàng)目需求,在其內(nèi)部定義為自己想要的樣式了,主要屬性如下:
3.引用mylist_view.xml文件
三種方法可以來引用剛才創(chuàng)建的文件:
(1)在ListView中添加如下屬性代碼
android:listSelector="@drawable/mylist_view"
(2)在ListView的item界面中添加如下屬性代碼
android:background="@drawable/mylist_view"
(3)利用JAVA代碼直接編寫
Drawable drawable = getResources().getDrawable(R.drawable.mylist_view);
listView.setSelector(drawable);
為了防止列表拉黑的情況發(fā)生,需要在ListView中添加以下的屬性代碼
android:cacheColorHint="@android:color/transparent"
屬性介紹:
android:state_selected選中
android:state_focused獲得焦點(diǎn)
android:state_pressed點(diǎn)擊
android:state_enabled設(shè)置是否響應(yīng)事件,指所有事件
2. 在XML中寫動畫
Animation也可以放在XML文件中,這樣程序的可維護(hù)性提高了。在XML中寫動畫的步驟如下
1.在res文件夾下面新建一個名為anim的文件夾
2.創(chuàng)建xml文件,并首先加入set標(biāo)簽,改標(biāo)簽如下
3.在該標(biāo)簽當(dāng)中加入rotate,alpha,scale或者translate標(biāo)簽
4.在代碼當(dāng)中使用AnimationUtils加載xml文件,并生成Animation對象
Alpha動畫
Animation a=AnimationUtils.loadAnimation(this, R.anim.alpha); iv.startAnimation(a);
Scale動畫
Rotate動畫
Translate動畫
這里重點(diǎn)提一下android:pivotX和android:pivotY和android:fromXDelta,android:toXDelta
android:pivotX="50"使用絕對坐標(biāo)
android:pivotX="50%"相對自己
android:pivotX="50%p"相對父控件
這些動畫怎么調(diào)用的呢?
在styles.xml中調(diào)用:
注:在/res 目錄下新建 anim 目錄,上面的Translate.xml,Scale.xml都是在這個文件夾下新建的。
3> Interpolator -- 定義動畫變化的速率
① AccelerateDecelerateInterpolator:
在動畫開始和結(jié)束的地方速率改變比較慢,在中間的時候加速;
② AccelaerateInterPolotor:
在動畫開始的地方速率改變比較慢,然后開始加速;
③ CycleInterpolator:
動畫循環(huán)播放特定的次數(shù),速率沿著正弦曲線
④ DecelerateInterpolator:
在動畫結(jié)束的地方速率比較慢
⑤ LinearInterpolator:
動畫以勻速運(yùn)動
在xml文件中定義Interpolator
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"
這樣所有的Animation共用一個Interpolator。
在代碼中用代碼設(shè)置如下
anim.setInterpolator(new AccelerateInterpolator());
在new一個AnimationSet中傳入true則所有的Animation共用Interpolator。
以上是“在xml中如何實(shí)現(xiàn)動畫”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!