0

我想用圆边改变按钮的形状,但是当我在我的styles.xml中定义它时它不起作用

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="ButtonStyle">
        <item name="android:textColor">#00FFFF</item>
        <item name="android:shape">rectangle</item>
        <item name="android:bottomRightRadius">7dp</item>
        <item name="android:bottomLeftRadius">7dp</item>
        <item name="android:topRightRadius">7dp</item>
        <item name="android:topLeftRadius">7dp</item>
    </style>

</resources>

main.xml 按钮

<Button
    android:id="@+id/button4"
    style="@style/ButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="31dp"
    android:layout_toLeftOf="@+id/button3"
    android:text="@string/sSettings" />

仅更改字体颜色。我究竟做错了什么?

4

3 回答 3

3

您必须为按钮声明一个可绘制的背景。在 res/drawables 中执行此操作。像这样创建一个新的可绘制文件:

/res/drawable/button_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:radius="7dp" />
    <solid android:color="#666666"/>

</shape>

然后在你的布局中做:

<Button
    android:id="@+id/button4"
    style="@style/ButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@drawable/button_drawable"
    android:layout_marginRight="31dp"
    android:layout_toLeftOf="@+id/button3"
    android:text="@string/sSettings" />

如果你想设置每个角落,你也可以这样做:

<corners android:bottomRightRadius="7dp"
    android:bottomLeftRadius="7dp" 
    android:topLeftRadius="7dp"
    android:topRightRadius="7dp"/>

在这里查看所有选项。

于 2012-04-23T08:58:00.173 回答
1

将形状定义为可绘制的rounded_corners.xml,并且在样式中只需将其设置为按钮的背景。

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

    <solid android:color="#00FFFF" />

    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="7dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="7dp" />

</shape>

和风格:

<style name="Button">            
        <item name="android:background">@drawable/rounded_corners</item>       
</style>
于 2012-04-23T09:03:05.300 回答
0

我已经这样做了:

<corners android:bottomRightRadius="7dp"
    android:bottomLeftRadius="5dp" 
    android:topLeftRadius="5dp"
    android:topRightRadius="7dp"/>
于 2012-04-23T08:46:21.120 回答