在我們做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方式的使用、代碼中的使用
- 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