顯示具有 android -- animation 標籤的文章。 顯示所有文章
顯示具有 android -- animation 標籤的文章。 顯示所有文章

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>