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默认为线性。另一个常用的是减速器。然而,有了这些超高速动画,尽管我不是一名设计师,但我永远无法分辨它们之间的区别。我想说的是随便玩玩,看看哪一个看起来最酷。