国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

自定義控件三部曲之動(dòng)畫(huà)篇(一)——alpha、scale、translate、rotate、set的xml屬性及用法

2019-11-07 23:29:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

相關(guān)文章:

《Android自定義控件三部曲文章索引》:http://blog.csdn.net/harvic880925/article/details/50995268

一、概述

Android的animation由四種類型組成:alpha、scale、translate、rotate,對(duì)應(yīng)android官方文檔地址:《Animation Resources》

1、xml配置文件中

alpha漸變透明度動(dòng)畫(huà)效果
scale漸變尺寸伸縮動(dòng)畫(huà)效果
translate畫(huà)面轉(zhuǎn)換位置移動(dòng)動(dòng)畫(huà)效果
rotate畫(huà)面轉(zhuǎn)移旋轉(zhuǎn)動(dòng)畫(huà)效果

下面我們逐個(gè)講講每個(gè)標(biāo)簽的屬性及用法。

2、動(dòng)作文件存放位置

動(dòng)作定義文件應(yīng)該存放在res/anim文件夾下,訪問(wèn)時(shí)采用R.anim.XXX.xml的方式,位置如圖:

二、scale標(biāo)簽——調(diào)節(jié)尺寸

1、自有屬性

scale標(biāo)簽是縮放動(dòng)畫(huà),可以實(shí)現(xiàn)動(dòng)態(tài)調(diào)控件尺寸的效果,有下面幾個(gè)屬性:

android:fromXScale    起始的X方向上相對(duì)自身的縮放比例,浮點(diǎn)值,比如1.0代表自身無(wú)變化,0.5代表起始時(shí)縮小一倍,2.0代表放大一倍;android:toXScale        結(jié)尾的X方向上相對(duì)自身的縮放比例,浮點(diǎn)值;android:fromYScale    起始的Y方向上相對(duì)自身的縮放比例,浮點(diǎn)值,android:toYScale        結(jié)尾的Y方向上相對(duì)自身的縮放比例,浮點(diǎn)值;android:pivotX            縮放起點(diǎn)X軸坐標(biāo),可以是數(shù)值、百分?jǐn)?shù)、百分?jǐn)?shù)p 三種樣式,比如 50、50%、50%p,當(dāng)為數(shù)值時(shí),表示在當(dāng)前View的左上角,即原點(diǎn)處加上50px,做為起始縮放點(diǎn);如果是50%,表示在當(dāng)前控件的左上角加上自己寬度的50%做為起始點(diǎn);如果是50%p,那么就是表示在當(dāng)前的左上角加上父控件寬度的50%做為起始點(diǎn)x軸坐標(biāo)。(具體意義,后面會(huì)舉例演示)android:pivotY           縮放起點(diǎn)Y軸坐標(biāo),取值及意義跟android:pivotX一樣。

下面看一個(gè)實(shí)例,當(dāng)scale里的屬性這樣設(shè)置時(shí),效果會(huì)怎樣呢:

[html] view plain copy PRint?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50”      android:pivotY=“50”      android:duration=“700” />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50"    android:pivotY="50"    android:duration="700" />

(1)、pivotX取值數(shù)值時(shí)(50)

這個(gè)控件,寬度和高度都是從0放大到1.4倍,起始點(diǎn)坐標(biāo)在控件左上角(坐標(biāo)原點(diǎn)),向x軸正方向和y軸正方向都加上50像素;

根據(jù)pivotX,pivotY的意義,控件的左上角即為控件的坐標(biāo)原點(diǎn),這里的起始點(diǎn)是在控件的原點(diǎn)的基礎(chǔ)上向X軸和Y軸各加上50px,做為起始點(diǎn),如下圖中圖二所示

                               圖一                                                             圖二    

(2)、pivotX取值百分?jǐn)?shù)時(shí)(50%)下面再看看當(dāng)pivotX、pivotY取百分?jǐn)?shù)的時(shí)候,起始點(diǎn)又在哪里?

上面我們講了,pivotX的值,當(dāng)取50%時(shí),表示在原點(diǎn)坐標(biāo)的基礎(chǔ)上加上的自己寬度的50%,看看效果:

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700” />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700" />縮放位置大小仍然從0-1.4,只改變pivotX和pivotY;起始點(diǎn)位置如下圖中圖二所示:

                               圖一                                                                 圖二

   (3)、pivotX取值50%p時(shí)

前面說(shuō)過(guò),當(dāng)取值在百分?jǐn)?shù)后面加上一個(gè)字母p,就表示,取值的基數(shù)是父控件,即在原點(diǎn)的基礎(chǔ)上增加的值是父標(biāo)簽的百分值。[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%p”      android:pivotY=“50%p”      android:duration=“700” />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%p"    android:pivotY="50%p"    android:duration="700" />

效果圖,及起始點(diǎn)坐標(biāo)圖如下所示:

        

2、從Animation類繼承的屬性

Animation類是所有動(dòng)畫(huà)(scale、alpha、translate、rotate)的基類,這里以scale標(biāo)簽為例,講解一下,Animation類所具有的屬性及意義。關(guān)于Animation類的官方文檔位置為:《Animation》android:duration        動(dòng)畫(huà)持續(xù)時(shí)間,以毫秒為單位 android:fillAfter          如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),將保持動(dòng)畫(huà)最后時(shí)的狀態(tài)android:fillBefore       如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),還原到開(kāi)始動(dòng)畫(huà)前的狀態(tài)android:fillEnabled    與android:fillBefore 效果相同,都是在動(dòng)畫(huà)結(jié)束時(shí),將控件還原到初始化狀態(tài)android:repeatCount 重復(fù)次數(shù)android:repeatMode 重復(fù)類型,有reverse和restart兩個(gè)值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因?yàn)檫@里的意義是重復(fù)的類型,即回放時(shí)的動(dòng)作。android:interpolator  設(shè)定插值器,其實(shí)就是指定的動(dòng)作效果,比如彈跳效果等,不在這小節(jié)中講解,后面會(huì)單獨(dú)列出一單講解。

對(duì)于android:duration,就不再講解了,就是動(dòng)畫(huà)的持續(xù)時(shí)長(zhǎng),以毫秒為單位,下面看看android:fillAfter和android:fillBefore

(1)android:fillAfter:保持動(dòng)畫(huà)結(jié)束的狀態(tài)

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillAfter=“true”      />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillAfter="true"    />

(2)android:fillBefore  還原初始化狀態(tài)

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillBefore=“true”      />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillBefore="true"    />                android:fillBefore=”true”                                 android:fillEnable=”true”

   

上面順便列出了,當(dāng)僅設(shè)定fillEanble為true時(shí)的效果,這兩個(gè)的標(biāo)簽的效果完全相同。

(3)、android:repeatMode=”restart /reverse”  設(shè)定回放類型

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillBefore=“true”      android:repeatCount=“1”      android:repeatMode=“restart”  />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillBefore="true"    android:repeatCount="1"    android:repeatMode="restart"/>        androidRepeatMode設(shè)為restart                       androidRepeatMode設(shè)為reverse       

三、alpha標(biāo)簽——調(diào)節(jié)透明度

1、自身屬性

android:fromAlpha   動(dòng)畫(huà)開(kāi)始的透明度,從0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明android:toAlpha       動(dòng)畫(huà)結(jié)束時(shí)的透明度,也是從0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明

使用示例:

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <alpha xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromAlpha=“1.0”      android:toAlpha=“0.1”      android:duration=“3000”      android:fillBefore=“true”>  </alpha>  
<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android"    android:fromAlpha="1.0"    android:toAlpha="0.1"    android:duration="3000"    android:fillBefore="true"></alpha>

2、從Animation類繼承的屬性

android:duration        動(dòng)畫(huà)持續(xù)時(shí)間,以毫秒為單位 android:fillAfter          如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),將保持動(dòng)畫(huà)最后時(shí)的狀態(tài)android:fillBefore       如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),還原到開(kāi)始動(dòng)畫(huà)前的狀態(tài)android:fillEnabled    與android:fillBefore 效果相同,都是在動(dòng)畫(huà)結(jié)束時(shí),將控件還原到初始化狀態(tài)android:repeatCount 重復(fù)次數(shù)android:repeatMode 重復(fù)類型,有reverse和restart兩個(gè)值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因?yàn)檫@里的意義是重復(fù)的類型,即回放時(shí)的動(dòng)作。android:interpolator  設(shè)定插值器,其實(shí)就是指定的動(dòng)作效果,比如彈跳效果等,不在這小節(jié)中講解,后面會(huì)單獨(dú)列出一單講解。與scale標(biāo)簽意義一樣,就不再綴述。

四、rotate標(biāo)簽——旋轉(zhuǎn)

1、自身屬性

android:fromDegrees     開(kāi)始旋轉(zhuǎn)的角度位置,正值代表順時(shí)針?lè)较蚨葦?shù),負(fù)值代碼逆時(shí)針?lè)较蚨葦?shù)android:toDegrees         結(jié)束時(shí)旋轉(zhuǎn)到的角度位置,正值代表順時(shí)針?lè)较蚨葦?shù),負(fù)值代碼逆時(shí)針?lè)较蚨葦?shù)android:pivotX               縮放起點(diǎn)X軸坐標(biāo),可以是數(shù)值、百分?jǐn)?shù)、百分?jǐn)?shù)p 三種樣式,比如 50、50%、50%p,具體意義已在scale標(biāo)簽中講述,這里就不再重講android:pivotY               縮放起點(diǎn)Y軸坐標(biāo),可以是數(shù)值、百分?jǐn)?shù)、百分?jǐn)?shù)p 三種樣式,比如 50、50%、50%p

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <rotate xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromDegrees=“0”      android:toDegrees=“-650”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“3000”      android:fillAfter=“true”>        </rotate>  
<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromDegrees="0"    android:toDegrees="-650"    android:pivotX="50%"    android:pivotY="50%"    android:duration="3000"    android:fillAfter="true"></rotate>圍繞自身從0度逆時(shí)針旋轉(zhuǎn)650度                            圍繞自身從0度順時(shí)針旋轉(zhuǎn)650度

android:fromDegrees=”0”                                       android:fromDegrees=”0”

android:toDegrees=”-650”                                      android:toDegrees=”650”

     

2、從Animation類繼承的屬性

android:duration        動(dòng)畫(huà)持續(xù)時(shí)間,以毫秒為單位 android:fillAfter          如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),將保持動(dòng)畫(huà)最后時(shí)的狀態(tài)android:fillBefore       如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),還原到開(kāi)始動(dòng)畫(huà)前的狀態(tài)android:fillEnabled    與android:fillBefore 效果相同,都是在動(dòng)畫(huà)結(jié)束時(shí),將控件還原到初始化狀態(tài)android:repeatCount 重復(fù)次數(shù)android:repeatMode 重復(fù)類型,有reverse和restart兩個(gè)值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因?yàn)檫@里的意義是重復(fù)的類型,即回放時(shí)的動(dòng)作。android:interpolator  設(shè)定插值器,其實(shí)就是指定的動(dòng)作效果,比如彈跳效果等,不在這小節(jié)中講解,后面會(huì)單獨(dú)列出一單講解。與scale標(biāo)簽意義一樣,就不再綴述。

五、translate標(biāo)簽 —— 平移

1、自身屬性

android:fromXDelta     起始點(diǎn)X軸坐標(biāo),可以是數(shù)值、百分?jǐn)?shù)、百分?jǐn)?shù)p 三種樣式,比如 50、50%、50%p,具體意義已在scale標(biāo)簽中講述,這里就不再重講android:fromYDelta    起始點(diǎn)Y軸從標(biāo),可以是數(shù)值、百分?jǐn)?shù)、百分?jǐn)?shù)p 三種樣式;android:toXDelta         結(jié)束點(diǎn)X軸坐標(biāo)android:toYDelta        結(jié)束點(diǎn)Y軸坐標(biāo)

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <translate xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXDelta=“0”       android:toXDelta=“-80”      android:fromYDelta=“0”      android:toYDelta=“-80”      android:duration=“2000”      android:fillBefore=“true”>  </translate>  
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXDelta="0"     android:toXDelta="-80"    android:fromYDelta="0"    android:toYDelta="-80"    android:duration="2000"    android:fillBefore="true"></translate>

2、從Animation類繼承的屬性

android:duration        動(dòng)畫(huà)持續(xù)時(shí)間,以毫秒為單位 android:fillAfter          如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),將保持動(dòng)畫(huà)最后時(shí)的狀態(tài)android:fillBefore       如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),還原到開(kāi)始動(dòng)畫(huà)前的狀態(tài)android:fillEnabled    與android:fillBefore 效果相同,都是在動(dòng)畫(huà)結(jié)束時(shí),將控件還原到初始化狀態(tài)android:repeatCount 重復(fù)次數(shù)android:repeatMode 重復(fù)類型,有reverse和restart兩個(gè)值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因?yàn)檫@里的意義是重復(fù)的類型,即回放時(shí)的動(dòng)作。android:interpolator  設(shè)定插值器,其實(shí)就是指定的動(dòng)作效果,比如彈跳效果等,不在這小節(jié)中講解,后面會(huì)單獨(dú)列出一單講解。與scale標(biāo)簽意義一樣,就不再綴述。

六、set標(biāo)簽——定義動(dòng)作合集

前面我們講解了各個(gè)標(biāo)簽動(dòng)畫(huà)的意義及用法,但他們都是獨(dú)立對(duì)控件起作用,假設(shè)我現(xiàn)在想上面的textView控件做一個(gè)動(dòng)畫(huà)——從小到大,旋轉(zhuǎn)出場(chǎng),而且透明度也要從0變成1,即下面的這個(gè)效果,該怎么辦?

這就需要對(duì)指定的控件定義動(dòng)作合集,Set標(biāo)簽就可以將幾個(gè)不同的動(dòng)作定義成一個(gè)組;

屬性:

set標(biāo)簽自已是沒(méi)有屬性的,他的屬性都是從Animation繼承而來(lái),但當(dāng)它們用于Set標(biāo)簽時(shí),就會(huì)對(duì)Set標(biāo)簽下的所有子控件都產(chǎn)生作用。

屬性有:(從Animation類繼承的屬性)

android:duration        動(dòng)畫(huà)持續(xù)時(shí)間,以毫秒為單位 android:fillAfter          如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),將保持動(dòng)畫(huà)最后時(shí)的狀態(tài)android:fillBefore       如果設(shè)置為true,控件動(dòng)畫(huà)結(jié)束時(shí),還原到開(kāi)始動(dòng)畫(huà)前的狀態(tài)android:fillEnabled    與android:fillBefore 效果相同,都是在動(dòng)畫(huà)結(jié)束時(shí),將控件還原到初始化狀態(tài)android:repeatCount 重復(fù)次數(shù)android:repeatMode 重復(fù)類型,有reverse和restart兩個(gè)值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因?yàn)檫@里的意義是重復(fù)的類型,即回放時(shí)的動(dòng)作。android:interpolator  設(shè)定插值器,其實(shí)就是指定的動(dòng)作效果,比如彈跳效果等,不在這小節(jié)中講解,后面會(huì)單獨(dú)列出一單講解。與scale標(biāo)簽意義一樣,就不再綴述。

上面這個(gè)效果,所對(duì)應(yīng)的XML代碼為:

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <set xmlns:android=“http://schemas.android.com/apk/res/android”      android:duration=“3000”      android:fillAfter=“true”>          <alpha       android:fromAlpha=“0.0”      android:toAlpha=“1.0”/>        <scale      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”/>        <rotate      android:fromDegrees=“0”      android:toDegrees=“720”      android:pivotX=“50%”      android:pivotY=“50%”/>           </set>  
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="3000"    android:fillAfter="true">  <alpha     android:fromAlpha="0.0"    android:toAlpha="1.0"/>  <scale    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"/>  <rotate    android:fromDegrees="0"    android:toDegrees="720"    android:pivotX="50%"    android:pivotY="50%"/></set>

七、實(shí)例——如何將動(dòng)畫(huà)XML文件應(yīng)用于控件中

上面我僅僅是列出了每個(gè)標(biāo)簽及其屬性的意義及應(yīng)用之后的效果演示,但上面是如何將定義動(dòng)畫(huà)的xml應(yīng)用到textView控件中的卻遲遲沒(méi)說(shuō),這一小節(jié),就以scale動(dòng)畫(huà)為例,講述如何將定義好的scle動(dòng)作添加到指定控件中。

先看最終效果圖:

1、新建工程、新建scale動(dòng)畫(huà)文件(scaleanim.xml)

新建一個(gè)工程,并且在res文件夾下,新建一個(gè)anim文件夾,然后再新建一個(gè)scaleanim.xml文件,結(jié)構(gòu)如圖所示:

scaleanim.xml的代碼為:(從TextView中心點(diǎn),從0放大到1.4倍,反復(fù)一次,最后還原到初始化狀態(tài))

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillBefore=“true”      android:repeatCount=“1”      android:repeatMode=“restart”  />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillBefore="true"    android:repeatCount="1"    android:repeatMode="restart"/>

2、XML布局文件

[html] view plain copy print?在CODE上查看代碼片<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”      xmlns:tools=“http://schemas.android.com/tools”      android:layout_width=“match_parent”      android:layout_height=“match_parent”      android:orientation=“vertical”      tools:context=“com.harvic.animation_demo.MainActivity” >        <Button android:id=“@+id/btn_animation”          android:layout_width=“match_parent”          android:layout_height=“wrap_content”          android:layout_margin=“10d
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.harvic.animation_demo.MainActivity" >    <Button android:id="@+id/btn_animation"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="10dip"        android:text="scale animation"/>    <TextView        android:id="@+id/tv"        android:layout_width="100dip"        android:layout_height="200dip"        android:background="#ff00ff"         android:text="@string/hello_world"        android:layout_gravity="center_horizontal"/></LinearLayout>

3、java代碼

[java] view plain copy print?在CODE上查看代碼片public class MainActivity extends Activity {        Button scaleBtn ;      Animation scaleAnimation;            TextView tv;      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);                    scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);          scaleBtn = (Button)findViewById(R.id.btn_animation);          tv =(TextView)findViewById(R.id.tv);                    scaleBtn.setOnClickListener(new View.OnClickListener() {                            @Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  tv.startAnimation(scaleAnimation);              }          });                }    }  
public class MainActivity extends Activity {    Button scaleBtn ;    Animation scaleAnimation;    TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);        scaleBtn = (Button)findViewById(R.id.btn_animation);        tv =(TextView)findViewById(R.id.tv);        scaleBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                tv.startAnimation(scaleAnimation);            }        });    }}(1)通過(guò)scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);從XML文件中獲取動(dòng)畫(huà)

(2)利用startAnimation將動(dòng)畫(huà)傳遞給指定控件顯示。

至此,本文就結(jié)束了,下篇將講述有關(guān)插值器的相關(guān)屬性及意義。

下面就是源碼下載了,源碼中包含兩部分內(nèi)容:

1、Harvic_animation_demo工程:是第七部分的實(shí)例源碼;

2、tryAlpha_xml工程:是前六節(jié)動(dòng)作代碼的集合,包含了前六小節(jié)里的所有代碼及動(dòng)畫(huà)定義。

源碼下載地址:http://download.csdn.net/detail/harvic880925/8032579

請(qǐng)大家尊重原創(chuàng)者版權(quán),轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/harvic880925/article/details/39996643 謝謝!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永德县| 镇江市| 东兴市| 长宁县| 阿坝| 揭西县| 望谟县| 巢湖市| 宾川县| 中西区| 屏南县| 石泉县| 乌恰县| 同德县| 白玉县| 天全县| 庆云县| 宁津县| 邯郸县| 同德县| 张家界市| 通城县| 勃利县| 民县| 金沙县| 灌阳县| 望奎县| 桃园县| 博爱县| 通化县| 博白县| 车险| 阿勒泰市| 龙南县| 榆社县| 镇坪县| 广昌县| 屏边| 唐海县| 南昌县| 和硕县|