2012年8月17日 星期五
Flame Animation
Flame Animation
public class ImageFlameActivity extends Activity {
/** Called when the activity is first created. */
AnimationDrawable fireAnimation;
Button mButton01;
Button mButton02;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//定義Frame Animation動畫的xml檔案
ImageView mImageView = (ImageView)findViewById(R.id.imageView1);
mImageView.setBackgroundResource(R.anim.fire_anim);
fireAnimation = (AnimationDrawable) mImageView.getBackground();
//設定按鈕來開始或終止Frame Animation動畫
mButton01 = (Button)findViewById(R.id.Button01);
mButton01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (!fireAnimation.isRunning()){
fireAnimation.start();
mButton01.setText(R.string.click_me_to_stop);
}else {
fireAnimation.stop();
mButton01.setText(R.string.click_me_to_start);
}
}
});
//設定可以改變只跑一次,或是不停止地顯示
mButton02 = (Button)findViewById(R.id.Button02);
mButton02.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (fireAnimation.isOneShot()){
fireAnimation.setOneShot(false);
mButton02.setText(R.string.click_me_to_many_times);
}else{
fireAnimation.setOneShot(true);
mButton02.setText(R.string.click_me_to_one_time);
}
}
});
}
//擇其一 來啟動 fireAnimation.start():
//Start Flame Animation動畫 ── 方法一
@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
if (hasFocus){
fireAnimation.start();
mButton01.setText(R.string.click_me_to_stop);
}else {
fireAnimation.stop();
mButton01.setText(R.string.click_me_to_start);
}
}
//Start Flame Animation動畫 ── 方法二
public boolean onTouchEvent(MotionEvent event){
if (event.getAction() == MotionEvent.ACTION_DOWN){
fireAnimation.start();
return true;
}
return super.onTouchEvent(event);
}
}
******************************
res/fire_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="100" />
<item android:drawable="@drawable/fire02" android:duration="100" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="200" />
<item android:drawable="@drawable/fire02" android:duration="200" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="300" />
<item android:drawable="@drawable/fire02" android:duration="300" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="600" />
<item android:drawable="@drawable/fire02" android:duration="600" />
<item android:drawable="@drawable/fire01" android:duration="400" />
<item android:drawable="@drawable/fire02" android:duration="400" />
<item android:drawable="@drawable/fire01" android:duration="600" />
<item android:drawable="@drawable/fire02" android:duration="600" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="600" />
<item android:drawable="@drawable/fire02" android:duration="600" />
<item android:drawable="@drawable/fire01" android:duration="600" />
<item android:drawable="@drawable/fire02" android:duration="600" />
<item android:drawable="@drawable/fire01" android:duration="500" />
<item android:drawable="@drawable/fire02" android:duration="500" />
<item android:drawable="@drawable/fire01" android:duration="600" />
<item android:drawable="@drawable/fire02" android:duration="600" />
<item android:drawable="@drawable/fire01" android:duration="600" />
<item android:drawable="@drawable/fire02" android:duration="600" />
</animation-list>
******************************************
res/layout/main.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/FrameLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="360px"
android:layout_height="560px"
android:layout_centerHorizontal="true"
android:layout_gravity="center" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/click_me_to_start" />
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/click_me_to_one_time" />
</LinearLayout>
****************************************
res/values/string.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">ImgFlame01Activity!</string>
<string name="app_name">Frame01</string>
<string name="click_me_to_stop">按我\n停止</string>
<string name="click_me_to_start">按我\n開始</string>
<string name="click_me_to_one_time">一次</string>
<string name="click_me_to_many_times">重複</string>
</resources>
2012年5月30日 星期三
背景:重複動畫
重複讓背景淡出、深入的動作:
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout;
public class BackgroundDemoActivity extends Activity {
private LinearLayout mLinearLayout;
private Animation alphaAnim;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLinearLayout = (LinearLayout) findViewById(R.id.LinearLayout01);
alphaAnim = AnimationUtils.loadAnimation(this, R.anim.alpha);
mLinearLayout.setAnimation(alphaAnim);
}
}
************************************************
res/anim/alpha.xml:
<?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0"
android:toAlpha="0.6"
android:startOffset="0"
android:duration="5000"
android:repeatCount="infinite"
android:repeatMode="reverse"
/>
</set>
********************************
res/layout/main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/gradient_selector"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
*********************************
res/drawable/gradient_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:angle="90"
android:endColor="#FF00FF00"
android:startColor="#FFFF0000"
android:type="linear" />
</shape>
</item>
</selector>
**********************************************
**********************************************
當然也可以換成:traslate
res/anim/translate.xml:
<?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1"
android:toXScale="5"
android:fromYScale="1"
android:toYScale="5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
android:repeatCount="infinite"
android:repeatMode="reverse"/>
<translate
android:fromXDelta="0"
android:toXDelta="20"
android:fromYDelta="0"
android:toYDelta="20"
android:startOffset="10"
android:duration="3000"
android:repeatCount="infinite"
android:repeatMode="reverse" />
</set>
***********************************************
***********************************************
或是
res/anim/rotate.xml:
<?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="3"
android:toXScale="3"
android:fromYScale="3"
android:toYScale="3"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
android:repeatCount="infinite"
android:repeatMode="restart"/>
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="10"
android:duration="5000"
android:repeatCount="infinite"
android:repeatMode="restart"/>
</set>
訂閱:
文章 (Atom)


