android - 样式复选框和radiobutton

时间:2016-04-22 06:04:57

标签: android android-layout material-design

我正在尝试设计我的应用并制作自己的主题,但我遇到了一些问题,因为我需要一些不寻常的行为。

我将材质设计主题与父Theme.AppCompat.Light.DarkActionBar

一起使用

概述

视图有颜色:

  • 文字为textColorPrimarytextColorSecondarytextColorTertiary
  • 按钮是未知的灰色
  • 按钮文字为textColorPrimary(?)
  • 复选框和radiobutton未经检查的边框为textColorSecondary
  • 复选框,单选按钮,滑块等颜色为colorAccent

但我需要

  • 按钮有accentColor背景和白色文字
  • 所有文字(textColorPrimarytextColorSecondarytextColorTertiary)都是深绿色的
  • 复选框,radiobuttons在选中和取消选中时应为原色。

我的风格

按钮

所以,我创建了样式Button.Default

<style name="Button.Default" parent="Widget.AppCompat.Button">
    <item name="colorButtonNormal">@color/colorAccent</item>
    <item name="android:textColor">@android:color/white</item>
</style>

并在我的主题中使用它:

<item name="android:buttonStyle">@style/Button.Default</item>

好的,颜色改变了,但背景却没改变。我将这一行添加到主题样式:

<item name="colorButtonNormal">@color/colorFakeAccent</item>

复选框

<style name="Checkbox.Default" parent="Widget.AppCompat.CompoundButton.CheckBox">
    <item name="android:textColor">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorPrimary</item>
</style>

复选框样式没有改变。如何设置checkbox,radiobutton unchecked和checked color?

4 个答案:

答案 0 :(得分:4)

使用<item name="colorControlNormal"> <item name="colorControlActivated">更改复选框的颜色

答案 1 :(得分:0)

这应该对您有所帮助,因为它可能会重复您的问题。

Adding custom radio buttons in android

答案 2 :(得分:0)

您是否尝试在res/values-v21/styles.xml文件中编写样式?

答案 3 :(得分:0)

您可以添加自己的风格和图像

<RadioButton
            android:id="@+id/my_rbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@drawable/community_radiobutton_style" />

custom_radio_button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_checked="true" android:drawable="@drawable/ic_radio_on" />
    <item android:state_checked="false" android:drawable="@drawable/ic_radio_off" />
</selector>