我有一个带有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>
我尝试过更换插补器并在之前/之前填充,但似乎没有什么区别。
答案 0 :(得分: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>
为了检查你的问题,我尝试从这个动画中删除翻译,只保留褪色部分,它仍然可以正常工作。
请试一试。我确信你正在做一些小错误。
答案 1 :(得分:0)
如果您不使用动画集,那么原来可以使用。所以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"
/>