android - 为整个布局设置动画

标签 android android-animation

我有一个Relative Layout,其中包含一些与图像上的某些元数据相对应的 View 。我有像这样工作的图像的 onTapListener:

image.setOnPhotoTapListener(new OnPhotoTapListener() {
            @Override
            public void onPhotoTap(View view, float x, float y) {
                if (visible) {
                    //fade-out the contents of relative layout
                    visible = false;
                } else {
                    //fade-in the contents of relative layout
                    visible = true;
                }
            }
        });

我想要的是,如果相对布局的内容可见,则淡出;如果不可见,则淡入。我基本上想为这些效果使用 alpha 动画。

如何为这两种情况编写动画功能?我是 Android 动画的新手,所以非常感谢任何帮助。

最佳答案

您只需在整个 View 上执行动画。

如果您至少支持 API 11,那么它会更容易,因为您可以使用 ObjectAnimators(如果您支持 10 个或少于您可以使用 NineOldAndroids )。

对于 Alpha 动画,您首先获取 Root View ,然后创建一个指向“alpha”属性的 ObjectAnimator。

View root = findViewById(R.id.rootId);
ObjectAnimator fadeIn = ObjectAnimator.ofFloat(root, "alpha", 0f, 1f);
fadeIn.setDuration(500);
ObjectAnimator fadeOut = ObjectAnimator.ofFloat(root, "alpha", 1f, 0f);
fadeOut.setDuration(500);

// Whenever you want to fade in.
if (fadeOut.isRunning()) {
  fadeOut.cancel(); // Cancel the opposite animation if it is running or else you get funky looks
}
fadeIn.start();

// Whenever you want to fade out.
if (fadeIn.isRunning()) {
   fadeIn.cancel();
}
fadeOut.start();

fadeIn 将使目标(根)在 500 毫秒内从 0 变为 1。 fadeOut 将使目标从 1 变为 0,持续 500 毫秒。

关于android - 为整个布局设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36063013/

相关文章:

android - 是否可以在 ActionBar 上使用 TransitionDrawable?

android - 共享过渡动画故障

java - 在 Android Studio 中制作动画

java - ArrayList优化内存

android - 如何让在 Xamarin.Forms 项目的另一个类中创建的 Intent 可以访问 MainActivity?

php - Httppost 返回 html 而不是 Json 代码

android - FragmentTransaction with slide in/out animation on >4 performance

android - 如何在 Google Drive 平板电脑应用程序或 Google+ 通知中创建滑动布局?

java - 为什么我的 Android 应用程序无法从 JSON url 获取数据?

Android翻转垂直动画xml