安卓改变单选按钮的圆圈颜色和文字颜色。

问题描述 投票:-1回答:1

当我点击 "单选按钮 "时,我想要的是 文字的颜色和圆圈的颜色。 改变 与...同时 在下图中。

enter image description here

圆圈和文字的颜色选择是colorPrimary或colorAccent中的任何一种颜色。

android radio-button radio-group android-radiobutton android-radiogroup
1个回答
1
投票

如果你想同时改变文字和圆圈的颜色,请按照以下步骤进行操作。

1.在下面添加样式

<style name="radioButton" parent="AppTheme">
    <item name="colorControlNormal">#0f0</item>
    <item name="colorAccent">#f00</item>
  </style>

2.将此选择器.xml添加到drawable中。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="#0f0" android:state_pressed="true" />
  <item android:color="#f00" android:state_checked="true" />
  <item android:color="#0f0" />
</selector>

3.为RadioButton添加选择器和样式。

 <RadioButton
            android:id="@+id/one"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="16dp"
            android:text="select"
            android:textColor="@drawable/selector"
            android:textSize="12sp"
            android:theme="@style/radioButton"
            app:useMaterialThemeColors="false" />

完整的代码。

<RadioGroup
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="left"
          android:layout_margin="16dp"
          android:checkedButton="@+id/one"
          android:layoutDirection="ltr"
          android:orientation="horizontal">

          <RadioButton
            android:id="@+id/one"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="16dp"
            android:text="select"
            android:textColor="@drawable/selector"
            android:textSize="12sp"
            android:theme="@style/radioButton"
            app:useMaterialThemeColors="false" />

          <RadioButton
            android:id="@+id/two"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="not select"
            android:textColor="@drawable/selector"
            android:textSize="12sp"
            android:theme="@style/radioButton"
            app:useMaterialThemeColors="false" />
        </RadioGroup>

和结果

enter image description here

注。 我使用的是谷歌材料


0
投票
radiobutton.setOnCheckedChangeListener { buttonView, isChecked ->
        if(radiobutton.isChecked())
        {
            // Changing radio button 1 color on checked.
            radiobutton.setTextColor(Color.parseColor("#00ff00"))}}

0
投票

MaterialRadioButton 默认使用一个选择器,其中颜色基于 colorOnSurfaceuncheckedcolorControlActivatedchecked 在您的应用程序主题中定义。

您可以在您的应用程序主题中使用 android:theme 属性.类似于。

<com.google.android.material.radiobutton.MaterialRadioButton
    ...
    android:theme="@style/ThemeOverlay.RadioButton"/>

与。

  <style name="ThemeOverlay.RadioButton" parent="">
    <item name="colorControlActivated">@color/.....</item>
    <item name="colorOnSurface">@color/.....</item>
    <item name="colorSurface">@color/.....</item>
  </style>

你也可以设置 useMaterialThemeColors 归于 false

<com.google.android.material.radiobutton.MaterialRadioButton
    ...
    useMaterialThemeColors="false"/>

并应用自定义选择器,使用 CompoundButtonCompat#setButtonTintList.

用类似选择器。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="..." android:state_enabled="true" android:state_checked="true"  />
  <item android:color="..." android:state_enabled="true" android:state_checked="false" />
  <item android:color="..." android:state_enabled="false" android:state_checked="true"  />
  <item android:color="..." android:state_enabled="false" android:state_checked="false" />  
</selector>
© www.soinside.com 2019 - 2024. All rights reserved.