Android View動畫(一) --- scale


在我們做apk開發的過程中,如果要吸引用戶,就需要要做出來一個非常炫的界面,當然動畫是必不可少的,接下來就記錄和學習動畫相關……

接下來就把平時的一些東西,慢慢的上傳上來,做一下記錄和保存

 

今天要講解的第一個是view動畫中的ScaleAnimation(縮放動畫)

  • scaleanimation

它可以使View具有放大和縮小的效果,對應的類是ScaleAnimation,繼承自Animation

  • 屬性

<scale>標簽標示縮放動畫,對應的是ScaleAnimation,

它具有一系列的屬性

 1 <?xml version="1.0" encoding="utf-8"?>
 2 
 3 <scale xmlns:android="http://schemas.android.com/apk/res/android"
 4 
 5 android:fromXScale="0.0" #起始x尺寸比例
 6 
 7 android:toXScale="1.4" #最終x尺寸比例
 8 
 9 android:fromYScale="0.0" #起始y尺寸比例
10 
11 android:toYScale="1.4" #最終y尺寸比例
12 
13 android:pivotX="50%" #縮放起點x軸坐標,取值可以是數值(50)、百分數(50%)、百 分數p(50%p),當取值為數值時,縮放起點為View左上角坐標 加具體數值像素,當取值為百分數時,表示在當前View左上角坐 加上View寬度的具體百分比,當取值為百分數p時,表示在View 左上角坐標加上父控件寬度的具體百分比
14 
15 android:pivotY="50%" #同上
16 
17 android:duration="700" #動畫持續時間,毫秒為單位
18 
19 android:fillAfter="true" #動畫結束后,保持結束時的狀態
20 
21 android:fillBefore="true" #動畫結束后,恢復為初始狀態
22 
23 android:fillEnabled="true" #效果同上
24 
25 android:repeatCount="5" #重復次數,取值為-1時無限重復,默認動畫執行一次
26 
27 android:repeatMode ="reverse" #重復模式,有reverse和restart兩個值,前者為倒序回放,后者為重新開始
28 
29 android::interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器 影響的是動畫的速度 這個屬性可以不指定,默認的是加速減速差值器 />

 

  • 縮放動畫的使用

分為兩種:xml方式的使用、代碼中的使用

  1. xml使用的方式:

第一步:首先在res目錄下面新建一個anim的文件夾,在里面新建一個xml的文件,如下圖

 

 第二步:根據需要添加相應的屬性

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <scale xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:fromXScale="0.0"
 4     android:toXScale="1.4"
 5     android:fromYScale="0.0"
 6     android:toYScale="1.4"
 7     android:pivotX="0"
 8     android:pivotY="50%"
 9     android:duration="1000"
10     android:repeatCount="4"
11     android:repeatMode="reverse"
12     android:interpolator="@android:anim/accelerate_decelerate_interpolator"
13     />

第三步,在代碼使用xml

1 tv = findViewById(R.id.tv);
2 Animation animation = AnimationUtils.loadAnimation(this,R.anim.scalefile);
3 tv.startAnimation(animation);

 

直接在代碼中使用scaleAnimation類去使用縮放動畫:

1 ScaleAnimation scaleAnimation = new ScaleAnimation(1,1.4f,1,1.4f,0.5f,0.5f);
2 scaleAnimation.setDuration(1000);
3 scaleAnimation.setRepeatCount(4);
4 scaleAnimation.setRepeatMode(Animation.REVERSE);
5 tv.startAnimation(scaleAnimation);

 

  • 總結

關於scaleAnimation就先降到這里,需要源碼的可以下載https://github.com/yangmtou/AnimationForAndroid


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM