Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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 - Fatal编程技术网

Android 为整个布局设置动画

Android 为整个布局设置动画,android,android-animation,Android,Android Animation,我有一个相对布局,其中包含与图像上的某些元数据相对应的一些视图。我为图像安装了OnTaListener,其工作原理如下: image.setOnPhotoTapListener(new OnPhotoTapListener() { @Override public void onPhotoTap(View view, float x, float y) { if (visible) {

我有一个
相对布局
,其中包含与图像上的某些元数据相对应的一些视图。我为图像安装了OnTaListener,其工作原理如下:

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动画非常陌生,因此非常感谢您的帮助。

您只需在整个视图上执行动画即可

如果您至少支持API11,那么就更容易了,因为您可以使用ObjectAnimators(如果您支持的是10或少于10,那么就可以使用)

对于Alpha动画,首先获取根视图,然后创建指向“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<代码>淡入淡出将使目标从1到0动画显示500毫秒。

您能建议我淡入淡出应该使用哪种类型的插值器吗?@AmitTiwari默认为线性。另一个常用的是减速器。然而,有了这些超高速动画,尽管我不是一名设计师,但我永远无法分辨它们之间的区别。我想说的是随便玩玩,看看哪一个看起来最酷。