2016-05-15 217 views
0

美好的一天。通过更改按钮样式更改按钮颜色

我试着改变按钮的颜色,因为我不希望它是重音颜色。因此,我试着改变按钮样式。下面是我的代码:

<android.support.v7.widget.AppCompatButton 
    android:id="@+id/enterButton" 
    android:layout_width="200dp" 
    android:layout_height="48dp" 
    android:layout_marginTop="50dp" 
    android:layout_gravity="center" 
    android:text="@string/enter_button" 
    android:textSize="@dimen/sohere_font_small" 
    style="@style/NewButtonStyle" 
    android:enabled="true"/> 

    <style name="NewButtonStyle" parent="Widget.AppCompat.Button.Colored"> 
    <item name="colorButtonNormal">@drawable/selector_button_color</item> 
    <item name="android:textColor">@drawable/selector_button_text_color</item> 
    <item name="colorAccent">@color/primary_color</item> 
</style> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="true" 
     android:color="@color/primary_color" /> 
    <item 
     android:state_enabled="false" 
     android:color="@color/default_disabled_button_colour" /> 
</selector> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="true" 
     android:color="@color/white_color" /> 
    <item 
     android:state_enabled="false" 
     android:color="@color/default_hint_text_color" /> 
</selector> 

但是按钮的颜色不会改变,直到我修改我的代码:

<android.support.v7.widget.AppCompatButton 
    android:id="@+id/enterButton" 
    android:layout_width="200dp" 
    android:layout_height="48dp" 
    android:layout_marginTop="50dp" 
    android:layout_gravity="center" 
    android:text="@string/enter_button" 
    android:textSize="@dimen/sohere_font_small" 
    **android:theme="@style/NewButtonStyle"** 
    android:enabled="true"/> 

有什么办法,我可以通过设置按钮样式改变改变按钮颜色主题?

请指教。

回答

0

对于您的样式按钮,您可以使用此:

转到绘制文件夹,使XML(如button.xml)文件调用风格,包含以下内容:

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

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <shape> 
      <gradient android:startColor="#449def" android:endColor="#2f6699" android:angle="270" /> 
      <stroke android:width="1px"   android:color="#000000" /> 
       <corners android:bottomLeftRadius="0dp" 
       android:bottomRightRadius="0dp" 
       android:topLeftRadius="8dp" 
       android:topRightRadius="8dp"/>  
       <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> 
     </shape> 
    </item> 

</selector> 

这是我的代码,你可以让你想

必要的改变现在这个样子

android:background="@drawable/button.xml" 
调用它在布局XML(mainactivity.xml)

我们改变字体颜色和样式,你可以用它来作为值文件夹中的styles.xml一部分的以下

<style name="buttonStyle" parent="@android:style/Widget.Button.Small"> 
    <item name="android:textColor">#FFFFFF</item> 
    <item name="android:textSize">12sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

现在把这块的布局XML(mainactivity.xml)这样的

style="@style/buttonStyle" 

最后的代码是:

<Button 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="15dp" 
android:text="@string/edit" 
android:id="@+id/btnEdit" 
android:background="@drawable/button.xml" 
style="@style/buttonStyle" 
/> 

希望这有助于:)