我有一个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/