按钮形状没有改变风格

时间:2012-04-23 08:38:19

标签: android android-layout

我想用圆边更改按钮形状,但是当我在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" />

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

3 个答案:

答案 0 :(得分: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"/>

为所有选项设置look here

答案 1 :(得分: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>

答案 2 :(得分:0)

我已经完成了这个:

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