- 不要新开启Activity的方式
- 也不要使用Dialog
- 让背景跟Dialog出现一样,变暗,带动画。
private void dimBackground(final float from, final float to) {
final Window window = getWindow();
ValueAnimator valueAnimator = ValueAnimator.ofFloat(from, to);
valueAnimator.setDuration(500);
valueAnimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
WindowManager.LayoutParams params = window.getAttributes();
params.alpha = (Float) animation.getAnimatedValue();
window.setAttributes(params);
}
});
valueAnimator.start();
}
亲测可用
/** 窗口背景变暗*/
dimBackground(1.0f,0.5f);
/** 窗口背景变亮*/
dimBackground(0.5f,1.0f);