相当于标题所说的内容。我希望用户可以选择自定义我有9个绘图的边框。这样的事情是可能的还是我需要使用不同的方法?现在,我认为它不起作用,它将搞乱9补丁。
答案 0 :(得分:1)
你能发一张9补丁的照片吗?有可能将其部分提取到另一种类型的drawable,然后使用图层列表将可自定义部分(使用用户定义的颜色绘制)分层到固定部分下。
[更新] 根据您发布的图片,我会删除图层列表的想法,但我们仍然可以解决问题。我们的想法是完全从9补丁中删除彩色边框和内部深色背景(用阴影颜色和不透明度填充该区域)。然后将3个布局相互嵌套。第一个将使用9补丁作为背景。第二种方法是使用用户定义的颜色作为背景。第三种方法是使用面板颜色作为背景。 9补丁将提供适当的边距来定位第二个(用户颜色)布局,然后您只需将layout_margin属性添加到第二个面板,以将最内部布局定位几个dps。
<LinearLayout
android:id="@+id/PanelOuter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shadow_nine_patch">
<LinearLayout
android:id="@+id/PanelUserBorder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_border_width"
android:background="@color/dialog_border_color_default">
<LinearLayout
android:id="@+id/PanelContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_dialog_content_margin"
android:background="@color/dialog_inner_color">
</LinearLayout>
</LinearLayout>
</LinearLayout>
当然,您有责任在代码中查找PanelUserBorder
视图,并使用正确的用户定义颜色调用setBackgroundColor()
。
答案 1 :(得分:0)
也许你可以通过在按钮上方放置一个50%透明视图来着色。
在考虑之后,我想也许你可以通过位图改变颜色: