Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android動畫效果——1.幀動畫2.補間動畫3.跳轉畫面(三)

Android動畫效果——1.幀動畫2.補間動畫3.跳轉畫面(三)

編輯:關於Android編程

插值器類 xml屬性值 說明 LinearInterpolator @android:anim/linear_interpolatorr 動畫以均勻的速度改變。 AccelerateInterpolator @android:anim/accelerate_interpolator 在動畫開始時改變速度較慢,然後開始加速。 AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator 在動畫開始、結束的時改變速度較慢,中間時加速。 CycleInterpolator @android:anim/cycle_interpolator 動畫循環播放特定次數,變化速度按正弦曲線改變。 DecelerateInterpolator @android:anim/decelerate_interpolator 在動畫開始的是改變速度較快,然後開始減速。 AnticipateInterpolator @android:anim/accelerate_interpolator 先向相反方向改變一段再加速播放。 AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator 開始的時向後然後向前甩一定值後返回到達最後的值。 BounceInterpolator @android:anim/bounce_interpolator 跳躍,快到目的值時值會跳躍。 OvershottInterpolator @android:anim/overshoot_interpolator 回彈,超出目的值然後緩慢改變到目的值。

 

\

補間動畫amin——amin1 幀動畫drawable——amin2

if(id == R.id.action_settings) {
//補間動畫 實例
Animation animation= AnimationUtils.loadAnimation(getBaseContext(),R.anim.anim1);
an1.startAnimation(animation);
}else if(id == R.id.action_settings1) {
//幀動畫
an2.setBackgroundResource(R.drawable.anim2);
animation=(AnimationDrawable)an2.getBackground();
animation.start();

}else if(id == R.id.action_settings2) {
//屬性動畫
ObjectAnimator oja=ObjectAnimator.ofFloat(an3,"rotation",0,360);
oja.setDuration(3000);
oja.setRepeatCount(1);
//設置插補器
oja.setInterpolator(newAccelerateDecelerateInterpolator());
oja.start();
}else if(id == R.id.action_settings3) {
ObjectAnimator oja=ObjectAnimator.ofFloat(an4,"alpha",1,0);
oja.setDuration(4000);
oja.setRepeatCount(1);
oja.setRepeatMode(ObjectAnimator.REVERSE);
oja.setInterpolator(newLinearInterpolator());
oja.start();

}

漸進出現

\

點擊 交回 正常

\

點擊圖片動畫效果

\

 

1.動畫效果

\

 



	      
	
		
	   

package com.example.jreduch728;

import android.animation.ObjectAnimator;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.view.menu.MenuBuilder;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.BounceInterpolator;
import android.view.animation.LinearInterpolator;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import java.lang.reflect.Method;

public class Tool_barActivity extends AppCompatActivity {
private TextView an1;
    private ImageView an2;
    private   AnimationDrawable animation;
    private TextView an3;
    private TextView an4;
    private Button bt2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tool_bar);
        an1=(TextView)findViewById(R.id.an1) ;
        an2=(ImageView)findViewById(R.id.an2) ;
        an3=(TextView)findViewById(R.id.an3) ;
        an4=(TextView)findViewById(R.id.an4) ;
        bt2=(Button)findViewById(R.id.button2);
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(Tool_barActivity.this,MainActivity.class);
                startActivity(intent);
                //系統自帶動畫樣式左邊進右邊出
                //overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
                //overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
                overridePendingTransition(R.anim.pop_enter,R.anim.pop_exit);
            }
        });

        an2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (animation!=null){
                if (animation.isRunning()){
                    animation.stop();
                }}
            }
        });


        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//        toolbar.setNavigationIcon(R.mipmap.ic_launcher);
//        toolbar.setLogo(R.mipmap.qqq);
//        toolbar.setTitle("TOOBAR");
//        toolbar.setSubtitle("使用");
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {   //創建菜單
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_tool_bar, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {   //
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            //補間動畫 實例
            Animation animation= AnimationUtils.loadAnimation(getBaseContext(),R.anim.anim1);
            an1.startAnimation(animation);
        }else if (id == R.id.action_settings1) {
            //幀動畫
            an2.setBackgroundResource(R.drawable.anim2);
            animation=(AnimationDrawable)an2.getBackground();
            animation.start();

        }else if (id == R.id.action_settings2) {
     //屬性動畫
            ObjectAnimator oja=ObjectAnimator.ofFloat(an3,"rotation",0,360);
            oja.setDuration(3000);
            oja.setRepeatCount(1);
            //設置插補器
            oja.setInterpolator(new BounceInterpolator());
            oja.start();
        }else if (id == R.id.action_settings3) {
            ObjectAnimator oja=ObjectAnimator.ofFloat(an4,"alpha",1,0);
            oja.setDuration(4000);
            oja.setRepeatCount(1);
            oja.setRepeatMode(ObjectAnimator.REVERSE);
            oja.setInterpolator(new LinearInterpolator());
            oja.start();

        }

        return super.onOptionsItemSelected(item);

    }

    @Override
    protected boolean onPrepareOptionsPanel(View view, Menu menu) {
        if (menu != null) {
            if (menu.getClass() == MenuBuilder.class) {
                try {
                    Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                    m.setAccessible(true);
                    m.invoke(menu, true);
                } catch (Exception e) {
                    System.out.print(getClass().getSimpleName() + "onMenuOpened...unable to set icons for overflow menu" + e);
                }
            }
        }
        return super.onPrepareOptionsPanel(view, menu);
    };
}



    
    
    
    
\

 

\

\

2幀動畫+布局

 




    
    

    
        
        

    
        
    
        
        
    
        
    
        
        
    
        
    
        
        
    
        
    
        
        
    
        
    
        
        
    
    


\

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved