1. 程式人生 > >Android類似Dialog彈出變暗

Android類似Dialog彈出變暗

Dialog彈出時,會有個動畫使底下變暗,Android有什麼便捷的方式可以實現activity變暗的效果嗎?類似Dialog,當然,要帶變暗動畫的。

補充一下:不要新開啟Activity的方式,也不要使用Dialog。
比如顯示一個ProgressBar,讓背景跟Dialog出現一樣,變暗,帶動畫,

/**
 * 調整視窗的透明度
 * @param from>=0&&from<=1.0f
 * @param to>=0&&to<=1.0f
 * 
 * */
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);