Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何创建棉花糖开放活动动画?_Android_Android Animation_Android 6.0 Marshmallow - Fatal编程技术网

Android 如何创建棉花糖开放活动动画?

Android 如何创建棉花糖开放活动动画?,android,android-animation,android-6.0-marshmallow,Android,Android Animation,Android 6.0 Marshmallow,我正在写一个发射器。 如何启动活动以显示棉花糖动画 我查看了AOSP Launcher3源代码,发现它只使用了以下内容: if (useLaunchAnimation) { ActivityOptions opts = Utilities.isLmpOrAbove() ? ActivityOptions.makeCustomAnimation(this, R.anim.task_open_enter, R.anim.no_anim

我正在写一个发射器。 如何启动活动以显示棉花糖动画

我查看了AOSP Launcher3源代码,发现它只使用了以下内容:

 if (useLaunchAnimation) {
            ActivityOptions opts = Utilities.isLmpOrAbove() ?
                    ActivityOptions.makeCustomAnimation(this, R.anim.task_open_enter, R.anim.no_anim) :
                    ActivityOptions.makeScaleUpAnimation(v, 0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
            optsBundle = opts.toBundle();
        }
然后被输入到

startActivity(context, optsBundle);
任务_open _enter动画如下所示:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#ff000000"
    android:shareInterpolator="false"
    android:zAdjustment="top">
    <alpha
        android:duration="167"
        android:fillAfter="true"
        android:fillBefore="true"
        android:fillEnabled="true"
        android:fromAlpha="0"
        android:interpolator="@interpolator/decelerate_quart"
        android:startOffset="0"
        android:toAlpha="1.0" />
    <translate
        android:duration="417"
        android:fillAfter="true"
        android:fillBefore="true"
        android:fillEnabled="true"
        android:fromYDelta="110%"
        android:interpolator="@interpolator/decelerate_quint"
        android:startOffset="0"
        android:toYDelta="0" />
</set>


我在启动器源代码中找到了答案:


我在启动器源代码中找到了答案:


回到动画怎么样?回到动画怎么样?
 Bundle optsBundle = null;
            ActivityOptions opts = null;
            if (Utilities.ATLEAST_MARSHMALLOW) {
                int left = 0, top = 0;
                int width = v.getMeasuredWidth(), height = v.getMeasuredHeight();
//                    if (v instanceof TextView) {
//                        // Launch from center of icon, not entire view
//                        Drawable icon = Workspace.getTextViewIcon((TextView) v);
//                        if (icon != null) {
//                            Rect bounds = icon.getBounds();
//                            left = (width - bounds.width()) / 2;
//                            top = v.getPaddingTop();
//                            width = bounds.width();
//                            height = bounds.height();
//                        }
//                    }
                opts = ActivityOptions.makeClipRevealAnimation(v, left, top, width, height);
            } else if (!Utilities.ATLEAST_LOLLIPOP) {
                // Below L, we use a scale up animation
                opts = ActivityOptions.makeScaleUpAnimation(v, 0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
            } else if (Utilities.ATLEAST_LOLLIPOP_MR1) {
                // On L devices, we use the device default slide-up transition.
                // On L MR1 devices, we use a custom version of the slide-up transition which
                // doesn't have the delay present in the device default.
                opts = ActivityOptions.makeCustomAnimation(context, R.anim.task_open_enter, R.anim.no_anim);
            }
            optsBundle = opts != null ? opts.toBundle() : null;

            context.startActivity(intent, optsBundle);