是否有一些默认的边框背景?

时间:2012-05-18 08:59:35

标签: android drawing border bevelled

我想绘制带有凸起斜面边框的自定义面板视图(Swing术语)。是否有一些预定义的方法?例如,是否可以从当前按钮样式中获取边框?或者我不得不创建自己的9补丁或什么?

1 个答案:

答案 0 :(得分:3)

对此的粗略方法是使用内部的图层列表制作XML drawable,并自己构建按钮的结构。在我的示例中,您实现了以下按钮样式。

enter image description here

如果需要,可以更改所有颜色以适合您的风格。我知道角落应该是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>添加到边框形状,我们就可以获得稍微不那么眩晕的风格:

enter image description here

或者你可以采用不同的方法,避免凸起的斜面边框,使XML更容易,可能更好。要实现这种按钮:

enter image description here

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>