【发布时间】:2016-07-15 09:48:25
【问题描述】:
我看到一个应用程序,它在navigationView 中的图标行为延迟了它的可见性(淡入动画),但我的手机 API 是 19。
我的问题是,如何访问这些图标以延迟其可见性?不使用第三方库是否可以实现?
【问题讨论】:
标签: android android-layout android-animation fadein android-navigationview
我看到一个应用程序,它在navigationView 中的图标行为延迟了它的可见性(淡入动画),但我的手机 API 是 19。
我的问题是,如何访问这些图标以延迟其可见性?不使用第三方库是否可以实现?
【问题讨论】:
标签: android android-layout android-animation fadein android-navigationview
对于您在 Java 中的视图,您可以执行以下操作 -
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator()); //add this
fadeIn.setDuration(1000);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator()); //and this
fadeOut.setStartOffset(1000);
fadeOut.setDuration(1000);
AnimationSet animation = new AnimationSet(false); //change to false
animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
View.startAnimation(animation);
如果你想只使用一个。 你甚至可以通过调用 clear 来停止它
View.clearAnimation();
或其他方式
对于 XML,在您的 res/anim 文件夹中创建一个文件,假设名称为 fadein.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="2000"
/>
</set>
在java中
动画 animationFadeIn = AnimationU
tils.loadAnimation(this, R.anim.fadein);
View.startAnimation(animationFadeOut);
在导航变得可见的方法中使用startAnimation()
【讨论】:
View 是什么,请参阅我的 navigationView。我没有动画背景,这是我的第一次。
View = 您的ImageView 放置图标的位置,或者甚至可以是您的TextView,但我绝对不会在NavigationView 上这样做,否则效果将在NavigationView而不是在需要的地方。