android - 如何为背景图像的变化设置动画?

标签 android animation

我正在创建一个模糊底层 Activity 的新 Activity 。我通过执行以下操作创建了它:

  • 在旧的 Activity 中,截屏并在 Intent 中将其作为字节数组发送
  • 在新 Activity 中,给它一个透明的主题
  • 让新 Activity 从 Intent 中获取图像,然后将其设置为背景。
  • 在其上方有一个模糊背景的图层。

但是,我想淡化背景变化而不是即时变化。

这就是我现在正在做的:

if (getIntent().hasExtra("image")) {
    byte[] byteArray = getIntent().getByteArrayExtra("image");
    if (byteArray != null) {
        Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
        BitmapDrawable drawable = new BitmapDrawable(getResources(), bmp);

        if (drawable != null) {
            mBackgroundFrame.setBackground(drawable);
        }
    }
}

如何使用淡入动画设置 setBackground(drawable)?

最佳答案

假设 mBackgroundFrame 是一个 ImageView,您可以按如下方式进行淡入淡出:

mBackgroundFrame.setBackground(drawable);
Animation animation = AnimationUtils.loadAnimation(this, R.anim.fadein);
mBackgroundFrame.startAnimation(animation);

并创建一个anim/fadein.xml资源:

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="3000"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0" />
</set>

关于android - 如何为背景图像的变化设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396586/

相关文章:

java - 具有多个 View 的 overridePendingTransition

html - 我的带有 animated.css 的 html/css 元素中没有动画

android - 创建 DialogFragment - 使用 onCreateDialog() 或 onCreateView()?

android - Visual Studio 中的 Xamarin 打包失败 |单符号错误 -1073740791

Android SDK 模拟器无法加载

android - 执行 doInBackground() 时发生致命异常 Asynctask #1 java.lang.RuntimeException 错误

javascript - Jquery动画高度或宽度导致 float 元素跳跃

Android TranslateAnimation 以像素为单位的特定位置

css - 在一个元素上 react native 动画多个动画

android - 如何更改微调器复选框的大小或颜色?