對話框的外觀設計和按鈕很像,先在/res/drawable創建一個resource file,然後在對話框xml的layout中加入這一句 android:background="@drawable/dialog"
以下是我resource file的程式碼
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<padding
android:left="30dp"
android:top="5dp"
android:right="30dp"
android:bottom="5dp" />
<corners android:radius="50dp" />
<gradient
android:type="linear"
android:startColor="#336666 "
android:centerColor="#D1E9E9"
android:endColor="#336666"
android:angle="45"/>
</shape>
其中shape有rectangle(矩形)、oval(橢圓)、line(線)、ring(環形)。
想特別介紹一下gradient,它是對話框背景的漸層,他可使用的語法有startColor(起始顏色)、centerColor(中間顏色)、endColor(結束顏色),centerX centerY用來指定位置坐標,範圍介於0.0f~1.0f,呈現類型有radial(放射式)、sweep(掃描式)、linear(線性)這三種,angle是它顏色漸變的角度,必須是45的倍數。
接著是設定Dialog你要在一個位於res/values/styles.xml的文件中新增這些code
<style name="myDialog" parent="@android:style/Theme.Dialog">
<!-- 背景透明 -->
<item name="android:windowBackground">@drawable/dialog</item>
<!-- 設定dialog視窗是否變暗 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- dialog外背景亮度從 (0~1.0) -->
<item name="android:backgroundDimAmount">0.5</item>
最後在java程式碼中加入這樣的程式碼就可以成功囉
dialog = new Dialog(this,R.style.myDialog);
dialog.setContentView(R.layout.dialog1);
dialog.setCancelable(true);
dialog.show();
這是成功的樣子