我创建了一个带有半透明边框的相当简单的 shapedrawable,并将其用作两个相邻视图的背景。
如果 srtoke 颜色是部分透明的,我期待一个实心笔触(如右图),但我得到的是一个模糊的笔触(左图)。
我做错了什么?
(图片取自ADT预览,在模拟器中效果更加明显)
这是 ShapeDrawable ( theme_base_bg_framed.xml
):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/base_frame_solid_color"
/>
<stroke
android:width="@dimen/frame_border_size"
android:color="@color/base_frame_border_color"
/>
<padding
android:left="@dimen/frame_padding_size"
android:top="@dimen/frame_padding_size"
android:right="@dimen/frame_padding_size"
android:bottom="@dimen/frame_padding_size"
/>
</shape>
它使用这些颜色和尺寸定义:
<color name="base_frame_solid_color">#20ffffff</color>
<color name="base_frame_border_color">#40ffffff</color>
<dimen name="frame_border_size">2dp</dimen>
<dimen name="frame_padding_size">2dp</dimen>
两个drawable都分配给View
s背景
<style name="ViewWithBorder">
<item name="android:background">@drawable/theme_base_bg_framed</item>
</style>
编辑:
ShapeDrawable 中使用的颜色带有字母是有原因的。背景中的视图将包含其他视图和/或图像。这是我得到的(左)和我期望得到的(右)的一个更好的例子。