我正在尝试为警报对话框添加边框。我希望看起来像这样:
到目前为止,我找到的最佳解决方案是使用九个补丁绘图作为对话框的背景。
这个问题是我没有找到一种方法来制作一个九个补丁背景,它实际上为对话框提供了一致的白线。这是迄今为止我最好的尝试(对不起,有点难以看到......):
问题是这会产生如下对话框:
这里的问题是双重的;两侧的线条太粗,顶部的线条有点被阴影褪色。
我唯一的想法是找到一个可以提供一致厚边框的工作九补丁,或找到一种方法来获得警告对话框的'主要布局',这样我就可以直接添加填充。
在这样的警报对话框上设置边框的最佳方法是什么?
答案 0 :(得分: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>
虽然它可能以编程方式设置,而不是在必要时以样式设置。
答案 1 :(得分: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>
您可以自定义每边的边框宽度。