2016/10/14

Android AlertDialog Alpha 外圍透明度


對話框開啟時, 會將對話框以外進行灰階半透明處理,

但是有時候, 我們是希望對話框以外的透明度, 按照我們自身需求來設定的,

如: 設定背景圖時, 不希望被對話框自動以灰階半透明來顯示,

以下會說明處理的方式 :

AlertDialog 原本的寫法 :
 程式碼
AlertDialog ad = new AlertDialog.Builder(this)
    ...
    .show();

AlertDialog 外圍的原呈現結果 :


AlertDialog 修改外圍透明度的寫法 :
 程式碼
AlertDialog.Builder builder = new AlertDialog.Builder(this)
    ...;
    //.show();

// 對話框相關屬性
AlertDialog ad = builder.create();
ad.getWindow().setDimAmount(0.05f);  // 透明度 (0:完全透明 ~ 1:完全不透明)
ad.show();

AlertDialog 外圍透明度為 0.05f 的呈現結果 :


這樣, 是不是在設定背景時, 預覽可以呈現最真實的情況了.