標籤:android class blog code java http
1,先看FrameAnimation,此動畫是用來實現動態動畫就是把一幀幀圖片迭代起來
放在drowable中的xml:
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/ben_window_0001" android:duration="60" /> <item android:drawable="@drawable/ben_window_0002" android:duration="60" /> <item android:drawable="@drawable/ben_window_0003" android:duration="60" /> <item android:drawable="@drawable/ben_window_0004" android:duration="60" /> <item android:drawable="@drawable/ben_window_0005" android:duration="60" /> <item android:drawable="@drawable/ben_window_0006" android:duration="60" /> <item android:drawable="@drawable/ben_window_0007" android:duration="60" /> <item android:drawable="@drawable/ben_window_0008" android:duration="60" /> <item android:drawable="@drawable/ben_window_0009" android:duration="60" /> <item android:drawable="@drawable/ben_window_0010" android:duration="60" /> <item android:drawable="@drawable/ben_window_0011" android:duration="60" /> <item android:drawable="@drawable/ben_window_0012" android:duration="60" /> <item android:drawable="@drawable/ben_window_0013" android:duration="60" /> <item android:drawable="@drawable/ben_window_0014" android:duration="60" /> <item android:drawable="@drawable/ben_window_0015" android:duration="60" /> <item android:drawable="@drawable/ben_window_0016" android:duration="60" /> <item android:drawable="@drawable/ben_window_0017" android:duration="60" /> <item android:drawable="@drawable/ben_window_0018" android:duration="60" /> <item android:drawable="@drawable/ben_window_0019" android:duration="60" /> <item android:drawable="@drawable/ben_window_0020" android:duration="60" /> <item android:drawable="@drawable/ben_window_0021" android:duration="60" /> <item android:drawable="@drawable/ben_window_0022" android:duration="60" /> <item android:drawable="@drawable/ben_window_0023" android:duration="60" /> <item android:drawable="@drawable/ben_window_0024" android:duration="60" /> <item android:drawable="@drawable/ben_window_0025" android:duration="60" /> <item android:drawable="@drawable/ben_window_0026" android:duration="60" /> <item android:drawable="@drawable/ben_window_0027" android:duration="60" /> <item android:drawable="@drawable/ben_window_0028" android:duration="60" /> </animation-list>
Activity中:
package com.example.frameanimation;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void startAnimation(View v){Button btn=(Button)v;//得到動畫對象AnimationDrawable anim=(AnimationDrawable)btn.getBackground();//啟動動畫anim.start();}}
這樣我點擊一個Tomcat就會迴圈的動
然後是補間動畫
先看這些xml檔案
<?xml version="1.0" encoding="utf-8"?><alpha android:fromAlpha="0.1" android:toAlpha="1" android:duration="5000" xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 透明度 0-1 0完全透明 1 完全不透明 --></alpha>
<?xml version="1.0" encoding="utf-8"?><rotate android:fromDegrees="0" android:toDegrees="360" android:duration="500" android:pivotX="50%" android:pivotY="50%" android:interpolator="@android:anim/accelerate_interpolator" android:repeatCount="infinite" android:repeatMode="reverse" xmlns:android="http://schemas.android.com/apk/res/android"> <!-- repeatCount 重複次數 infinite 無限 repeatMode 重複模式 interpolator 加速器 --></rotate>
<?xml version="1.0" encoding="utf-8"?><scale android:fromXScale="0.5" android:fromYScale="0.5" android:toXScale="2" android:toYScale="2" android:pivotX="50%" android:pivotY="50%" android:duration="200" android:repeatMode="reverse" android:repeatCount="infinite" xmlns:android="http://schemas.android.com/apk/res/android"> </scale><!-- fromXScale 1 本身狀態 -->
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="80%p" android:duration="100" android:repeatMode="reverse" android:repeatCount="infinite" > </translate>
主檔案中的xml
無非就是一張圖片加上幾個按鈕
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="84dp" android:src="@drawable/heart" android:id="@+id/myimg" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button2" android:layout_alignBottom="@+id/button2" android:layout_alignRight="@+id/myimg" android:text="縮放" android:onClick="scale" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/myimg" android:layout_marginLeft="32dp" android:onClick="alpha" android:text="alpha" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_marginRight="35dp" android:layout_toLeftOf="@+id/button3" android:onClick="rotate" android:text="旋轉" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/button1" android:text="位移動畫" android:onClick="translate" /></RelativeLayout>
然後在Activity中調用這些動畫
package com.example.tweenanimation;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;public class MainActivity extends Activity {private ImageView image;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);image = (ImageView) findViewById(R.id.myimg);}// 執行透明動畫public void alpha(View v) {// 1.載入動畫資源Animation anim = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);// 2.執行動畫 image.startAnimation(anim);}//執行旋轉動畫public void rotate(View v) {Animation anim = AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate); image.startAnimation(anim);}//縮放動畫public void scale(View v) {Animation anim = AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale); image.startAnimation(anim);}public void translate(View v) {Animation anim = AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate); image.startAnimation(anim);}}