【问题标题】:Android Chrome custom tabs fade in animationAndroid Chrome 自定义标签淡入动画
【发布时间】:2017-03-10 19:30:23
【问题描述】:

我有一个带有 Chrome 自定义标签的应用。只要它们是过渡(从左/右进入/退出),我就可以获得与构建器一起使用的进入和退出动画:

.setStartAnimations(mContext, R.anim.enter_from_right, R.anim.exit_to_left)
.setExitAnimations(mContext, R.anim.enter_from_left, R.anim.exit_to_right)

一旦我尝试使用 alpha 进行淡入/淡出动画,它就不起作用了。我得到一个黑屏,必须从多任务处理中终止应用程序。动画 XML 淡入:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/linear"
>
<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="500"
    android:fillAfter="true"
    />
</set>

淡出:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/linear"
>
<alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="500"
    android:fillAfter="true"
    />
</set>

我尝试更改插值器并在之后/之前填充,但似乎没有什么不同。

【问题讨论】:

    标签: android


    【解决方案1】:

    我在我的应用程序中就是这样做的,完全没有问题。

                       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                            CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
                            builder.setToolbarColor(ResourceUtils.getColor(R.color.mine_shaft));
                            builder.setStartAnimations(activity, R.anim.slide_up, R.anim.no_change);
                            builder.setExitAnimations(activity, R.anim.no_change, R.anim.slide_down);
                            CustomTabsIntent customTabsIntent = builder.build();
                            customTabsIntent.launchUrl(activity, Uri.parse(url));
                        } else {
                            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    
                            activity.startActivity(intent);
                        }
    

    这就是我的动画 XML 的样子,

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:duration="500"
            android:fromYDelta="100%p"
            android:interpolator="@android:anim/decelerate_interpolator"
            android:toYDelta="0" />
    
        <alpha
            android:duration="500"
            android:fromAlpha="0.4"
            android:toAlpha="1.0" />
    </set>
    

    为了检查您的问题,我尝试从该动画中删除翻译,只保留褪色部分,它仍然可以正常工作。

    请试一试。我敢肯定你犯了一些小错误。

    【讨论】:

    • 我认为 fromAlpha="0.0" 是我的问题
    • 是的,这可能是问题所在。如果这个答案对您有帮助,请考虑投票。
    【解决方案2】:

    事实证明,如果您不使用动画集,它就可以工作。所以 XML 变成:

    淡入:

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:interpolator/decelerate_quad"
    android:fromAlpha="0.0" android:toAlpha="1.0"
    android:duration="1000" />
    

    淡出:

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:interpolator/accelerate_quad"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="1000"
    />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多