Androidでボタンの背景色を変えたく、以下のように設定しました。

```

    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"
            android:text="Button" />
    
```

ですが画像のように角ばった形になります。  
元の形のままで背景色を変更するにはどうすればいいですか？

[![普通のボタン](https://i.stack.imgur.com/J9TZf.png)](https://i.stack.imgur.com/J9TZf.png)  
[![角ばったボタン](https://i.stack.imgur.com/qsbuj.png)](https://i.stack.imgur.com/qsbuj.png)
CC BY-SA 3.0
2016-02-29T12:19:21.390
22665
2016-03-01T12:04:27.933
13588
question
android material-design
AndroidでMaterial Designのボタンの背景色を変えたい
`styles.xml`での`theme`カスタマイズで、

```

    <item name="android:colorButtonNormal">@color/colorPrimary</item>
    
```

です（Lollipop 未満では`android：`を取って `"colorButtonNormal"`）。

背景色指定だと、ボタンもボタンの背景も両方とも色が変わってしまうので、そのようになります。形が変わったのではなく、背景に溶け込んでしまっているだけです。
CC BY-SA 3.0
2016-02-29T13:13:04.797
22668
2016-02-29T13:13:04.797
7290
22665
answer
ボタンごとに異なるテーマを設定することで、任意のボタンの色だけ変更することが可能です。  
例えばstyles.xmlで以下のように指定したとします。

```

    <style name="Button1">
        <item name="android:colorButtonNormal">#FF0000</item>
    </style>
    
    <style name="Button2">
        <item name="android:colorButtonNormal">#00FF00</item>
    </style>
    
```

layout.xmlで色を変更したいボタンに、作成したスタイルをthemeとして指定すれば、そのボタンだけ色が変わります。

```

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button1"
            android:text="button1"
            android:theme="@style/Button1"
            />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button2"
            android:text="button2"
            android:theme="@style/Button2"
            />
    
```
CC BY-SA 3.0
2016-03-01T12:04:27.933
22703
2016-03-01T12:04:27.933
9498
22665
answer