【问题标题】:Change Button Colour By Changing Button Style通过更改按钮样式更改按钮颜色
【发布时间】:2016-09-11 10:08:20
【问题描述】:

美好的一天。

我尝试更改按钮颜色,因为我不希望它成为强调色。因此,我尝试更改按钮样式。以下是我的代码:

<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"/>

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

请指教。

【问题讨论】:

    标签: android xml button colors diacritics


    【解决方案1】:

    为了给你的按钮设置样式,你可以使用这个:

    转到drawable文件夹并制作一个名为style的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>
    

    这是我的代码,您可以根据需要进行必要的更改

    现在像这样在你的布局 xml (mainactivity.xml) 中调用它

    android:background="@drawable/button.xml"
    

    现在要更改字体颜色和样式,您可以使用以下内容作为 values 文件夹中 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"
    />
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-03
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多