我是靠谱客的博主 慈祥白开水,最近开发中收集的这篇文章主要介绍Android实现Activity界面进入和退出动画(仿微信),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

下面介绍的是实现右进右出

一、在res下新建一个anim文件夹(有了就不用新建了)

1、新建in_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="100%p"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:toXDelta="0%p" >

</translate>

2、新建out_to_right.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="0%p"
    android:toXDelta="100%p"
    android:interpolator="@android:anim/accelerate_interpolator" >

</translate>

二、在Activity操作使用介绍

1、进入操作

这个的实现是其实可以新建一个BaseActvity然后写入统一的跳转方法 然后每个activity直接可以使用的

 startActivity(new Intent(getActivity(), NetClosedActivity.class));
 overridePendingTransition(R.anim.in_from_right, R.anim.out_to_right);

下面的代码就是在BaseActivity中实现的公用的方法 

下面这块还做了跳转的时候双击的处理

    /**
     * 跳转activity
     *
     * @param clz the clz
     */
    public void startActivity(Class<?> clz) {
        if (isFastDoubleClick()) {
            startActivity(clz, null);
            overridePendingTransition(R.anim.in_from_right, R.anim.out_to_right);
        }
    }
   /**
     * Is fast double click boolean.
     *
     * @return the boolean
     */
    public boolean isFastDoubleClick() {
        long time = System.currentTimeMillis();
        long timeD = time - lastClickTime;
        if (0 < timeD && timeD < 800) {
            return false;
        }
        lastClickTime = time;
        return true;

    }

 下面的方法是上面调用的

    /**
     * 含有Bundle通过Class跳转界面
     *
     * @param cls    the cls
     * @param bundle the bundle
     */
    protected void startActivity(Class<?> cls, Bundle bundle) {
        Intent intent = new Intent();
        intent.setClass(this, cls);
        if (bundle != null) {
            intent.putExtras(bundle);
        }
        startActivity(intent);
    }

2、退出操作

   @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
        overridePendingTransition(R.anim.in_from_left, R.anim.out_to_right);
    }

三、Fragment中的操作流程

下面这个就是要加个getActivity

                getActivity().overridePendingTransition(R.anim.in_from_right, R.anim.out_to_right);

 四、问题

可能你会问我为啥不在style中设置他的

windowEnterAnimation
windowExitAnimation

这俩我用了 有问题,一会显示动画一会不显示的,手机不一样还有问题

<item name="windowIsTranslucente">true</item> ...

这个是防止启动出现黑屏的但是影响在样式里面设置动画,导致不生效

所以还是用上面讲解的!!!经过实践得到的就是上面讲述的操作

 

 

 

最后

以上就是慈祥白开水为你收集整理的Android实现Activity界面进入和退出动画(仿微信)的全部内容,希望文章能够帮你解决Android实现Activity界面进入和退出动画(仿微信)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部