我正在创建一个模糊基础活动的新活动。我通过执行以下操作创建了这个:
然而,我想淡化背景变化,而不是瞬间。
这就是我现在正在做的事情:
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)的动画?
答案 0 :(得分:1)
假设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>
答案 1 :(得分:0)
您只需使用overridePendingTransition
Intent i = new Intent(this, NewlyStartedActivity.class);
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="500" />
fade_out.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:fillAfter="true"
android:duration="500" />
这将淡出当前活动并淡入新活动。