Android自定义带动画效果的跳转页面与返回?

导读:本篇文章讲解 Android自定义带动画效果的跳转页面与返回?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.首先在项目的res 目录下创建anim目录,并创建四个动画类

(1).slide_left_in

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromXDelta="100%p"
        android:toXDelta="0" />

</set>

(2).slide_left_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />

</set>

(3).slide_right_in

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromXDelta="-100%p"
        android:toXDelta="0" />

</set>

(4).slide_right_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:toXDelta="100%p" />

</set>

2.创建一个所有Activity的基础类

package com.ruidde.csndresourcedemo;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 所有类的基础类
 */
public class BaseActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    /**
     * 页面跳转去下个页面且不finish当前页面 startAnim
     */
    public void startActivityForAnim(Intent intent) {
        // TODO Auto-generated method stub
        super.startActivity(intent);
        overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
    }
    /**
     * finish当前页面 finishAnim
     */
    public void finishForAnim(){
        super.finish();
        overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);
    }
    /**
     * 页面跳转并关闭当前页面 使用startAnim
     */
    public void finishActivityForAnim(Intent intent){
        super.startActivity(intent);
        super.finish();
        overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);
    }
    /**
     * 页面跳转并关闭当前页面 使用startAnim
     */
    public void startActivityForFinish(Intent intent){
        super.startActivity(intent);
        super.finish();
        overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
    }
    /**
     *强制隐藏输入法键盘
     */
    public void hideInput(Context context, View view){
        InputMethodManager inputMethodManager = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(),0);
    }
    public boolean isMobileNO(String mobiles) {
        Pattern p = Pattern .compile("^((13[0-9])|(14[5,7,9])|(15[^4,\\D])|(17[0,3,5-8])|(18[0-9]))\\d{8}$");
        Matcher m = p.matcher(mobiles);
        return m.matches();
    }
}

3.创建的Activity继承基础类 BaseActivity

页面跳转下一个个时,调用:startActivityForAnim(intent);

例如:

Intent intent = new Intent(context ,TwoActivity.class);
startActivityForAnim(intent );

或者跳转的第二个页面需要finish掉返回到上一个页面,可以调用:finishForAnim();

通过上述方法可以实现页面间跳转的动画效果!!!

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119220.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!