라디오 버튼의 원 색상 변경 하나에서 RadioButton 원의 색상을

프로젝트 중 하나에서 RadioButton 원의 색상을 변경하고 싶습니다 . 설정 할 속성을 이해할 수 없습니다. 내가 가지고있는 배경색은 검은 색이므로 보이지 않습니다. 원의 색상을 흰색으로 설정하고 싶습니다.



답변

더 간단한 방법은 buttonTint 색상을 설정하는 것입니다.

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

결과:

컬러 안드로이드 라디오 버튼

코드로 처리하려면 (api 21 이상) :

if(Build.VERSION.SDK_INT>=21)
{

    ColorStateList colorStateList = new ColorStateList(
            new int[][]{

                    new int[]{-android.R.attr.state_enabled}, //disabled
                    new int[]{android.R.attr.state_enabled} //enabled
            },
            new int[] {

                    Color.BLACK //disabled
                    ,Color.BLUE //enabled

            }
        );


    radio.setButtonTintList(colorStateList);//set the color tint list
    radio.invalidate(); //could not be necessary
}


답변

업데이트 :
1. 대신 이것을 사용하십시오

   <android.support.v7.widget.AppCompatRadioButton
        android:id="@+id/rbtn_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:buttonTint="@color/primary" />

2. 그런 다음이 줄을 부모 레이아웃이나 Alt + EnterAndroid Studio에 추가하여 자동 추가
xmlns:app="http://schemas.android.com/apk/res-auto"

최소 예는 다음과 같아야합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.AppCompatRadioButton
        android:id="@+id/rbtn_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:buttonTint="@color/primary" />

</LinearLayout>

3. 프로그램에서 다음과 같이 호출해야합니다.

AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);

기본적으로 이러한 종류의 패턴은 AppCompatCheckBox, AppCompatButton 등과 같은 모든 AppCompact 유형에 적용 할 수 있습니다.

기존 답변 :

아래 안드로이드 API 21을 지원하기 위해 AppCompatRadioButton 을 사용할 수 있습니다 . 그런 다음 setSupportButtonTintList방법을 사용하여 색상을 변경하십시오. 이것은 라디오 버튼을 만드는 내 코드 스 니펫입니다.

    AppCompatRadioButton rb;
    rb = new AppCompatRadioButton(mContext);

    ColorStateList colorStateList = new ColorStateList(
            new int[][]{
                    new int[]{-android.R.attr.state_checked},
                    new int[]{android.R.attr.state_checked}
            },
            new int[]{

                    Color.DKGRAY
                    , Color.rgb (242,81,112),
            }
    );
    rb.setSupportButtonTintList(colorStateList);

API 19에서 테스트 결과 :

이것은 API 19에서 테스트되었습니다.

자세한 내용은 안드로이드 참조 링크참조하십시오 .


답변

<android.support.v7.widget.AppCompatRadioButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:buttonTint="@color/Color" />


답변

API에서 작업 잘 포스트 (21) 등으로 21 미리
당신에 styles.xml넣어 :

<!-- custom style -->
<style name="radionbutton"
       parent="Base.Widget.AppCompat.CompoundButton.RadioButton">
    <item name="android:button">@drawable/radiobutton_drawable</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

귀하의 radio button에서의 XML은 다음과 같은 모양입니다 :

<RadioButton
    android:layout_width="wrap_content"
    style="@style/radionbutton"
    android:checked="false"
    android:layout_height="wrap_content"
    />

이제 당신이해야 할 일은에서를 만드는 radiobutton_drawable.xmldrawable 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원하는 색상으로 바꾸 십시오.


답변

이 코드를 사용해야합니다 :

<android.support.v7.widget.AppCompatRadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:buttonTint="@color/black"
                    android:text="Radiobutton1"
                    app:buttonTint="@color/black" />

사용 app:buttonTint대신 android:buttonTintandroid.support.v7.widget.AppCompatRadioButton대신 Radiobutton!


답변

  1. styles.xml 파일에서 사용자 정의 스타일을 선언하십시오.

    <style name="MyRadioButton" parent="Theme.AppCompat.Light">
      <item name="colorControlNormal">@color/indigo</item>
      <item name="colorControlActivated">@color/pink</item>
    </style>  
  2. android : theme 속성을 통해이 스타일을 RadioButton에 적용하십시오.

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="Radio Button"
        android:theme="@style/MyRadioButton"/>

    활동이 연장되는 경우에만 AppCompatActivity


답변

API 21 미만

사용자 정의 스타일 RadioButton style.xml 만들기

 <style name="RadioButton" parent="Theme.AppCompat.Light">
     <item name="colorAccent">@color/green</item>
     <item name="android:textColorSecondary">@color/mediumGray</item>
     <item name="colorControlNormal">@color/red</item>
 </style>

레이아웃에서 테마 사용 :

<RadioButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:theme="@style/RadioButton" />

API 21 이상

buttonTint를 사용하십시오.

 <RadioButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:buttonTint="@color/green" />