主题中所有按钮上的圆角 - 如何覆盖?

时间:2011-10-20 15:06:20

标签: android button themes

我一直在寻找一种简单的方法让我的整个应用中的所有按钮都有圆角。

我没有成功,所以我想我会问=)

我的AndroidManifest.xml:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/BlackTheme" android:alwaysRetainTaskState="true" android:name="MyApplication">

我的styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="ButtonHeader" parent="@android:style/Widget.Button">
        <item name="android:textSize">18dip</item>
        <item name="android:minWidth">70dip</item>
        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">30dip</item>
    </style>

    <style name="JobViewHeader" parent="@android:style/TextAppearance.Small">
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>

    <style name="BlackTheme" parent="@android:style/Theme.Black">
        <item name="android:button">@drawable/button_rounded</item>
    </style>  

    <style name="DialogTheme" parent="@android:style/Theme.Dialog">
    </style>  
</resources>

我的button_rounded.xml(在drawable中):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="10dp" /> 
</shape> 

1 个答案:

答案 0 :(得分:0)

据我了解,您试图将一些抽象的drawable(在您的案例中为Shape Drawable)指定为按钮背景,稍后将其与任何其他可绘制集合组合为按钮背景。不幸的是,这是不可能的。如果你想要一个带圆角的背景,你需要提供包含圆角的可绘制资源,无论它是什么类型的可绘制:Shape Drawable,九补丁等。

但是,您可以考虑对Button小部件进行子类化并覆盖其draw方法,您可以根据需要操作按钮的外观。