必須先於專案中res建立anim資料夾,有關動畫敘述的XML檔都放在裡面
循環加速器XML檔<?xml version="1.0" encoding="utf-8"?>
<!-- 循環加速器 ,android:cycles="XX"可設定循環幾次-->
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="7"
/>
動畫敘述的XML檔
<?xml version="1.0" encoding="utf-8"?>
<!-- set元素可將多種動畫特效結合在一起同時運作
android:interpolator="@anim/cycle7用來將加速器給導入
主程式建立動畫物件時,就是以參考此XML檔來建立
此外,如果要讓有順序的播放,則可以利用不同先後順序的set(裡面放動畫元素,ex:scale translate...)來達到 -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/cycle7">
<scale
android:fromXScale="1.6"
android:toXScale="0.6"
android:fromYScale="1.6"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
/>
<translate
android:fromYDelta="0"
android:fromXDelta="0"
android:toXDelta="1000"
android:toYDelta="0"
android:duration="3000"
/>
</set>
主程式
package com.example.mytween2;
import ...
public class MainActivity extends Activity {
//宣告動畫物件
Animation ani;
ImageView iv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView)findViewById(R.id.imageView1);
//建立動畫物件
ani=AnimationUtils.loadAnimation(this, R.anim.translate_cycle_interpolator);
}
public void but1_onclick(View v){
//將動畫物件設給ImageView,並啟動
iv.setAnimation(ani);
iv.startAnimation(ani);
}
}
沒有留言:
張貼留言