Android风格不允许使用颜色

时间:2016-10-27 10:10:04

标签: android

我是Android开发的新手。 我正在制作一个程序,我想改变按钮的样式,我可以做到。

这里有关于按钮样式建议的图片: enter image description here

正如你所看到的那样光滑而漂亮!但是当我想改变按钮的颜色(带有样式)时,我遇到了问题! : enter image description here

如何更改样式(按钮颜色)并使按钮保持平滑和美观?

4 个答案:

答案 0 :(得分:3)

使用样式作为主题:

 <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:textColor="@android:color/white"
        android:theme="@style/blackButton"
    />

并在styles.xml中添加此样式

<style name="blackButton" parent="Widget.AppCompat.Button.Colored">
        <item name="colorButtonNormal">@android:color/black</item>
        <item name="colorControlHighlight">@color/colorAccent</item>
    </style>

答案 1 :(得分:0)

更改背景颜色会删除默认的材质设计样式,您应该使用父主题Widget.AppCompat.Button.Colored为该按钮创建自己的样式 :

 <!--fix to keep material design for buttons and add background color-->
    <style name="blackButton" parent="Widget.AppCompat.Button.Colored">
        <item name="colorButtonNormal">@color/colorBlack</item>
    </style>

然后使用android:theme="@style/blackButton"

将此主题应用于按钮

答案 2 :(得分:0)

制作一种扩展默认按钮样式并为其设置背景颜色的样式。 在styles.xml中

<style name="black_button_style"
       parent="Base.Widget.AppCompat.Button.Colored">
             <item name="android:layout_width">match_parent</item>
             <item name="android:layout_height">wrap_content</item>
             <item name="android:typeface">sans</item>
             <item name="android:background">#000000</item>
</style>

在您的活动中xml。

   <Button 
    style="@style/black_button_style/>

答案 3 :(得分:0)

在styles.xml中添加此代码

<resources>
 <style name="App.Button.Style" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:background">@color/red</item>
        <item name="android:textColor">@android:color/white</item>
    </style>
</resources>

并更改按钮样式

 <Button
     android:id="@+id/btnPlayVideo"
     android:text="Play Video"
     style="@style/App.Button.Style"/>