Android xml實現animation的4種動畫效果實例代碼
animation有四種動畫類型:分別為alpha(透明的漸變)、rotate(旋轉)、scale(尺寸伸縮)、translate(移動),二實現的分發(fā)有兩種,一種是javaCode,另外一種是XML,而我今天要說的是XML實現的方法,個人感覺javaCode的實現方法比xml要簡單,所以有需要的可以自己去找找資料看看。
先給大家展示下效果圖,如果大家感覺還不錯,請繼續(xù)往下閱讀。
下面是我的四個xml文件,分別代表這四種動畫類型。
alpha.xml
COde:
<?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- 漸變透明的動畫效果 --> <!--fromAlpha 動畫起始透明的 1.0完全不透明 toAlpha 動畫結束時透明的 0.0完全透明 startOffset 設置啟動時間 duration 屬性動畫持續(xù)時間 --> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="500" android:duration="5000" /> </set>
rotate.xml
<?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- 畫面轉移旋轉動畫效果 --> <!-- fromDegrees開始角度 toDegrees結束角度 pivotX設置旋轉時的X軸坐標 --> <rotate android:fromDegrees="0" android:toDegrees="+360" android:pivotX="50%" android:pivotY="50%" android:duration="5000" /> </set>
scale.xml
<?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- 漸變尺寸伸縮動畫效果 --> <!-- fromXScale 起始x軸坐標 toXScale 止x軸坐標 fromYScale 起始y軸坐標 toYScale 止y軸坐標 pivotX 設置旋轉時的X軸坐標 pivotY 設置旋轉時的Y軸坐標 duration 持續(xù)時間 --> <scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="5000" /> </set>
translate.xml
<?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- 畫面轉移位置移動動畫效果 --> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="5000" /> </set>
下面是主界面xml的布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/image1" android:layout_width="match_parent" android:layout_height="200px" /> <ImageView android:id="@+id/image2" android:layout_width="match_parent" android:layout_height="200px" /> <ImageView android:id="@+id/image3" android:layout_width="match_parent" android:layout_height="200px" /> <ImageView android:id="@+id/image4" android:layout_width="match_parent" android:layout_height="200px" /> </LinearLayout>
然后是Activity代碼
public class AnimationDemo extends Activity{ private Animation animation,animation1,animation2,animation3; private ImageView image1,image2,image3,image4; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.animation); initView(); } public void initView() { animation=AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.rotate); animation1=AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.scale); animation2=AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.alpha); animation3=AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.translate); image1=(ImageView)findViewById(R.id.image1); image1.setImageResource(R.drawable.jpeg); image2=(ImageView)findViewById(R.id.image2); image2.setImageResource(R.drawable.jpg); image3=(ImageView)findViewById(R.id.image3); image3.setImageResource(R.drawable.png); image4=(ImageView)findViewById(R.id.image4); image4.setImageResource(R.drawable.gif); image1.startAnimation(animation); image2.startAnimation(animation1); image3.startAnimation(animation2); image4.startAnimation(animation3); } }
好了,就這樣就是先了四種動畫效果,另外還有一個知識點,是動畫里面的速率問題,有需要的可以去上網百度看看吧。
相關文章
android:TextView簡單設置文本樣式和超鏈接的方法
這篇文章主要介紹了android:TextView簡單設置文本樣式和超鏈接的方法,涉及TextView常見文字屬性的相關操作技巧,需要的朋友可以參考下2016-08-08解析Android游戲中獲取電話狀態(tài)進行游戲暫?;蚶^續(xù)的解決方法
本篇文章是對在Android游戲中獲取電話狀態(tài)進行游戲暫?;蚶^續(xù)的方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05Flutter搞定寬高不統(tǒng)一布局開發(fā)的方法詳解
我們在開發(fā)移動端界面的時候,經常會遇到一組尺寸不一的組件需要作為同一組展示,所以本文就將利用Wrap組件搞定寬高不統(tǒng)一布局開發(fā),需要的可以參考一下2023-06-06總結Android App內存優(yōu)化之圖片優(yōu)化
網上有很多大拿分享的關于Android性能優(yōu)化的文章,主要是通過各種工具分析,使用合理的技巧優(yōu)化APP的體驗,提升APP的流暢度,但關于內存優(yōu)化的文章很少有看到。下面是我在實踐過程中使用的一些方法,很多都是不太成熟的項目,只是將其作為一種處理方式分享給大家。2016-08-08Android屏幕適配工具類 Android自動生成不同分辨率的值
這篇文章主要為大家詳細介紹了Android屏幕適配工具類,Android自動生成不同分辨率的值,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03Android OpenGL入門之GLSurfaceView
這篇文章主要介紹了OpenGL入門知識,如何在Android中使用GLSurfaceView,如果對OpenGL感興趣的同學,可以參考下2021-04-04Android 網絡狀態(tài)實時監(jiān)聽代碼實例(一)
本文給大家介紹Android 網絡狀態(tài)實時監(jiān)聽代碼實例(一),對android網絡狀態(tài)監(jiān)聽相關知識感興趣的朋友一起學習吧2016-03-03flutter PositionedTransition實現縮放動畫
這篇文章主要為大家詳細介紹了flutter PositionedTransition實現縮放動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07