2015-05-09 131 views
1

我正在嘗試將邊框添加到警報對話框。我希望,使它看起來像這樣:將邊框添加到AlertDialog

enter image description here

迄今爲止我已經找到了最好的解決方案是使用九個補丁繪製作爲背景的對話框。

這樣做的問題是,我還沒有找到一種方法來製作九個補丁背景,它實際上爲對話提供了一個一致的白線。這一直是我最好的嘗試迄今(抱歉,這是一個有點難以見......):

enter image description here

的問題是,這會產生這樣的對話:

enter image description here

這裏的問題是雙重的;兩側的線條太厚了,頂部的線條被陰影褪色了。

我唯一的想法是找到一個工作的九個補丁,該補丁提供一致的粗邊界,或者找到一種方法來獲得警報對話框的「主佈局」,所以我可以直接添加填充。

什麼是最好的方式去建立這樣的警報對話框的邊界?

回答

3

通過提問的答案是非常接近我想要的東西,但它仍然留在對話框繞一個大黑線,我是不感興趣的

我刪除從層列表中的層之一,定製白色邊框上的填充。我也做了不是設置背景爲透明,建議在評論中是一個好主意。

物品內部的形狀是爲背景提供對話框上相同的曲線邊緣(如果您仔細觀察3.0+,則可以看到幾個圓角的像素)。

dialog_border.xml文件中drawable文件夾中,我有這樣的:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:top="6dp" 
     android:left="13dp" 
     android:right="13dp" 
     android:bottom="6dp"> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/offWhite" /> 

      <corners 
       android:radius="3dp"/> 
     </shape> 
    </item> 
</layer-list> 

而且在我的風格,我有這樣的:

<style name="DialogTheme" parent="android:Theme.Holo.Dialog"> 
    <item name="android:windowBackground">@drawable/dialog_border</item> 
</style> 

雖然它也許可以編程的設置,而不是風格如有必要。

2

在你的對話框的XML設置以下背景頂層視圖:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/white"/> 
    <item 
     android:bottom="1dp" 
     android:drawable="@color/black" 
     android:left="1dp" 
     android:right="2dp" 
     android:top="2dp"> 
    </item> 
</layer-list> 

你可以在每邊自定義邊框寬度。

+0

謝謝;這種方法似乎很有前途......但是,我怎樣才能使邊界只有1-2dp寬?對話框和白色邊框之間仍有大量黑色空間。 – jcw

+0

@jcw您是否嘗試將此可繪製設置爲背景?您可以自由定製邊框的寬度。如果有對話框樣式的任何工件,請嘗試:getWindow()。setBackgroundDrawableResource(android.R.color.transparent);'在構造函數或onCreateDialog中。 – questioner

+0

是的,我將它設置爲我的對話框的背景,但它與我的問題中的圖像有相同的問題(除了部分邊框是黑色的)。我試圖擺脫一個15-20dp寬的黑色邊框,接着是我之後的細白線。將背景設置爲透明不是我想要做的;我正在嘗試獲得一個正常的對話框,並帶有白色邊框....感謝您的幫助。 – jcw