這篇文章主要介紹在xml中如何實現(xiàn)動畫,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)六安免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。1. Selector
Android中的Selector主要是用來改變ListView和Button控件的默認背景。
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ù)項目需求,在其內(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獲得焦點
android:state_pressed點擊
android:state_enabled設(shè)置是否響應(yīng)事件,指所有事件
2. 在XML中寫動畫
Animation也可以放在XML文件中,這樣程序的可維護性提高了。在XML中寫動畫的步驟如下
1.在res文件夾下面新建一個名為anim的文件夾
2.創(chuàng)建xml文件,并首先加入set標簽,改標簽如下
3.在該標簽當中加入rotate,alpha,scale或者translate標簽
4.在代碼當中使用AnimationUtils加載xml文件,并生成Animation對象
Alpha動畫
Animation a=AnimationUtils.loadAnimation(this, R.anim.alpha); iv.startAnimation(a);
Scale動畫
Rotate動畫
Translate動畫
這里重點提一下android:pivotX和android:pivotY和android:fromXDelta,android:toXDelta
android:pivotX="50"使用絕對坐標
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:
動畫以勻速運動
在xml文件中定義Interpolator
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"
這樣所有的Animation共用一個Interpolator。
在代碼中用代碼設(shè)置如下
anim.setInterpolator(new AccelerateInterpolator());
在new一個AnimationSet中傳入true則所有的Animation共用Interpolator。
以上是“在xml中如何實現(xiàn)動畫”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!