我想绘制带有凸起斜角边框的自定义面板状视图(Swing 术语)。有一些预定义的方法吗?例如,是否可以从当前按钮样式中获取边框?或者我必须创建自己的 9 补丁或其他什么?
问问题
1237 次
1 回答
3
一种粗略的方法是制作一个可绘制的 XML,其中包含一个图层列表,并自己编写按钮的结构。在我的示例中,您实现了以下按钮样式。
如果需要,所有颜色都可以更改以适合您的风格。我知道角落应该是 45º 角而不是 90º 但没有简单的方法让我在这里展示这个没有一些测试。源 XML 如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- The gray part of the border -->
<item>
<shape>
<solid android:color="#fccc"></solid>
</shape>
</item>
<!-- The black part of the border -->
<item android:right="2dip"
android:bottom="2dp">
<shape>
<solid android:color="#f000"></solid>
</shape>
</item>
<!-- The content -->
<item android:left="2dip"
android:top="2dp"
android:right="2dip"
android:bottom="2dp">
<shape>
<solid android:color="#ffafafaf"></solid>
</shape>
</item>
</layer-list>
作为您可以在此处实现的进一步示例,只需添加<corners android:radius="4dp"></corners>
边框形状,我们就可以获得稍微不那么刺眼的样式:
或者,您可以采用不同的方法并避免凸起的斜角边框,使其在 XML 方面更容易并且可能更好。要实现这种按钮:
XML 就像以下一样简单:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp"></corners>
<solid android:color="#fccc"></solid>
<stroke android:width="2dp" android:color="#ff6f6f6f"></stroke>
</shape>
于 2012-05-18T09:09:41.587 回答