现在的位置: 首页 > 综合 > 正文

android页面切换动画

2017年10月03日 ⁄ 综合 ⁄ 共 2931字 ⁄ 字号 评论关闭

首先你要定义好,你要切换的动画效果,例如平移

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
 	<translate
        android:fromXDelta="100%p"
        
        android:toXDelta="0"
        
        android:duration="5000"
         />
</set>

布局文件中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ViewFlipper 
        android:layout_width="fill_parent"
    	android:layout_height="fill_parent"
    	android:id="@+id/viewFilpper"
        >
        <!-- 第一页 -->
        <LinearLayout 
            android:layout_width="fill_parent"
    		android:layout_height="fill_parent"
    		android:orientation="horizontal"
            >
            <TextView 
                android:layout_width="fill_parent"
    			android:layout_height="wrap_content"
    			android:text="@string/firstpage"
                />
            
            <Button
                android:layout_width="wrap_content"
    			android:layout_height="wrap_content"
    			android:text="@string/open"
    			android:onClick="openActivity" 
                />
        </LinearLayout>
        <!-- 第二页 -->
        <LinearLayout 
            android:layout_width="fill_parent"
    		android:layout_height="fill_parent"
    		android:background="#339900"
            >
            <TextView 
                android:layout_width="fill_parent"
    			android:layout_height="wrap_content"
    			android:text="@string/secondpage"
                />
        </LinearLayout>
        
    </ViewFlipper>
</LinearLayout>

activity中

package cn.wonders.animation;

import android.support.v7.app.ActionBarActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
import android.content.Intent;
import android.os.Bundle;


public class MainActivity extends ActionBarActivity {
	private ViewFlipper viewFlipper;
	private float startX;
	private Animation enter_righttoleft;
	private Animation enter_lefttoright;
	private Animation out_lefttoright;
	private Animation out_righttoleft;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		viewFlipper = (ViewFlipper) findViewById(R.id.viewFilpper);
		//动画效果
		enter_righttoleft = AnimationUtils.loadAnimation(this, R.anim.enter_righttoleft);
		enter_lefttoright = AnimationUtils.loadAnimation(this, R.anim.enter_lefttoright);
		out_lefttoright = AnimationUtils.loadAnimation(this, R.anim.out_lefttoright);
		out_righttoleft = AnimationUtils.loadAnimation(this, R.anim.out_righttoleft);
	}
	
//	滑动转换
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		if(event.getAction() == MotionEvent.ACTION_DOWN) {
			startX = event.getX();	
		}else if (event.getAction()==MotionEvent.ACTION_UP) {
			float endX = event.getX();
			if(endX > startX) {
				viewFlipper.setInAnimation(out_righttoleft);
				viewFlipper.setOutAnimation(out_lefttoright);
				viewFlipper.showPrevious();
			}else if(endX < startX){
				viewFlipper.setInAnimation(enter_lefttoright);
				viewFlipper.setOutAnimation(enter_righttoleft);
				viewFlipper.showNext();
			}
			
		}
		return super.onTouchEvent(event);
	}
	
	public void openActivity(View v) {
		Intent intent = new Intent(this, OtherActivity.class);
		startActivity(intent);
		//activity切换动画效果
		overridePendingTransition(R.anim.enteralpha, R.anim.outalpha);
	}

}

将可以实现,屏幕滑动切换动画效果

抱歉!评论已关闭.