我想在点击时更改单选按钮的颜色。我在自定义编辑文本和单选按钮上使用自定义布局。这是我的布局项目的xml。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true">
<com.ekcoffee.ekcoffeeapp.widgets.AppTextView
android:id="@+id/textViewCountryCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:paddingRight="@dimen/dimen_10dp"
android:text="+91 (India)"
android:textColor="@color/color_black_text"
android:textSize="@dimen/dimen_16sp"
app:textStyle="@integer/OPEN_SANS_REGULAR" />
</RelativeLayout>
<RadioButton
android:id="@+id/selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:backgroundTint="@color/color_accent"
android:checked="false"
android:clickable="false"
android:focusable="false"
/>
这是我的微调器的xml
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinnerCountryCode"
style="@style/spinner_style"
android:layout_width="@dimen/dimen_1dp"
android:layout_height="@dimen/dimen_1dp"
android:layout_alignParentBottom="true"
android:hint="+91"
android:spinnerMode="dialog"
android:textColor="@color/color_splash_screen_text"
android:textColorHint="@color/color_white"
android:textSize="@dimen/dimen_25dp" />
我也使用了旋转器的样式
<style name="spinner_style" parent="Widget.AppCompat.Spinner.Underlined">
<item name="android:background">@color/color_primary</item>
<item name="android:layout_marginLeft">@dimen/dimen_48dp</item>
<item name="android:layout_marginRight">@dimen/dimen_24dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:checkMark">@drawable/ic_radio_checked</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:layout_marginTop">100dp</item>
<item name="android:paddingBottom">5dp</item>
</style>
答案 0 :(得分:0)
更简单,只需设置 buttonTint颜色:(仅适用于api级别21或以上)
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radio"
android:checked="true"
android:buttonTint="@color/your_color"/>
在你的 values / colors.xml 中,你的颜色在这种情况下是偏红的:
<color name="your_color">#e75748</color>
<强>结果:强>
答案 1 :(得分:0)
int textColor = Color.parseColor(#000000);
yourradiobutton.setButtonTintList(ColorStateList.valueOf(textColor));
将上面的代码放在按钮的onClick方法
中答案 2 :(得分:0)
在styles.xml
放置 -
<!-- custom style -->
<style name="radionbutton"
parent="Base.Widget.AppCompat.CompoundButton.RadioButton">
<item name="android:button">@drawable/radiobutton_drawable</item>
</style>
xml中的radio button
应如下所示 -
<RadioButton
android:layout_width="wrap_content"
style="@style/radionbutton"
android:checked="false"
android:layout_height="wrap_content"
/>
现在您需要做的就是制作radiobutton_drawable.xml in your drawable folder.
以下是您需要加入的内容 -
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_unchecked" android:state_checked="false" android:state_focused="true"/>
<item android:drawable="@drawable/radio_unchecked" android:state_checked="false" android:state_focused="false"/>
<item android:drawable="@drawable/radio_checked" android:state_checked="true" android:state_focused="true"/>
<item android:drawable="@drawable/radio_checked" android:state_checked="true" android:state_focused="false"/>
</selector>
您的 radio_unchecked.xml -
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke android:width="1dp" android:color="@color/colorAccent"/>
<size android:width="30dp" android:height="30dp"/>
</shape>
您的 radio_checked.xml -
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke android:width="1dp" android:color="@color/colorAccent"/>
<size android:width="30dp" android:height="30dp"/>
</shape>
</item>
<item android:top="5dp" android:bottom="5dp" android:left="5dp" android:right="5dp">
<shape android:shape="oval">
<solid android:width="1dp" android:color="@color/colorAccent"/>
<size android:width="10dp" android:height="10dp"/>
</shape>
</item>
</layer-list>
只需替换@color/colorAccent with the color of your choice.