CheckBox 색상을 변경하는 방법은 무엇입니까?
기본값을 변경하려면 어떻게 합니까?CheckBox
Android 상색?
으로 적으로CheckBox
색깔은 초록색이고, 이 색을 바꾸고 싶습니다.
하다면 주문 .CheckBox
?
할 수 . XML을 사용하십시오.buttonTint
박스용: (API 레벨 23 기준)
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/CHECK_COLOR" />
다음을 사용하여 이 작업을 수행할 수도 있습니다.appCompatCheckbox v7
이전 API 수준의 경우:
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/COLOR_HERE" />
만약 당신이minSdkVersion
21 이상 사용android:buttonTint
확인란의 색상을 업데이트하는 속성:
<CheckBox
...
android:buttonTint="@color/tint_color" />
에서는 AppCompat의 할 수 .buttonTint
속성:
<CheckBox
...
app:buttonTint="@color/tint_color" />
이 이경하분원경우할를류를 ,CheckBox
사용하는 것을 잊지 마세요.AppCompatCheckBox
대신.
이전 답변:
을 변경할 수 .CheckBox
사용하여 인출할 수 있는.android:button="@drawable/your_check_drawable"
기여하다.
확인란의 안드로이드 테마를 설정하여 스타일에 원하는 색상을 얻을 수 있습니다.xml add :
<style name="checkBoxStyle" parent="Base.Theme.AppCompat">
<item name="colorAccent">CHECKEDHIGHLIGHTCOLOR</item>
<item name="android:textColorSecondary">UNCHECKEDCOLOR</item>
</style>
레이아웃 파일에서 다음을 수행합니다.
<CheckBox
android:theme="@style/checkBoxStyle"
android:id="@+id/chooseItemCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
사용하는 것과 달리android:buttonTint="@color/CHECK_COLOR"
23에서 합니다.
위의 21+ api 버전에 대한 버튼 및 색상 선택기의 색상을 변경하는 데 사용합니다.
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/checkbox_filter_tint"
tools:targetApi="21"/>
res/messages/messages_filter_messages.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/light_gray_checkbox"
android:state_checked="false"/>
<item android:color="@color/common_red"
android:state_checked="true"/>
</selector>
프로그램 버전:
int [][] states = {{android.R.attr.state_checked}, {}};
int [] colors = {color_for_state_checked, color_for_state_normal}
CompoundButtonCompat.setButtonTintList(checkbox, new ColorStateList(states, colors));
내장된 안드로이드 뷰를 구성하고 프로젝트에 새로운 스타일을 추가하는 방법으로 안드로이드의 스타일 접근 방식을 사용할 것을 제안합니다.
<style name="yourStyle" parent="Base.Theme.AppCompat">
<item name="colorAccent">your_color</item> <!-- for uncheck state -->
<item name="android:textColorSecondary">your color</item> <!-- for check state -->
</style>
확인란의 테마에 이 스타일을 추가합니다. Android:theme="@style/youStyle"
이게 도움이 되길 바랍니다.
xml에 buttonTint 추가
<CheckBox
android:id="@+id/chk_remember_signup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@android:color/white"
android:text="@string/hint_chk_remember_me" />
에 이 하세요.styles.xml
파일 이름:
<style>
<item name="android:colorAccent">@android:color/holo_green_dark</item>
</style>
저도 같은 문제에 직면했고, 아래 기술을 사용하여 해결책을 얻었습니다.를 합니다.btn_check.xml
android-sdk/platforms/android-#(version)/data/res/drawable
프로젝트의 그리기 가능한 폴더로 이동하고 'on' 및 'off' 이미지 상태를 사용자 지정 이미지로 변경합니다.
은 xml만 됩니다.android:button="@drawable/btn_check"
<CheckBox
android:button="@drawable/btn_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
다른 기본 Android 아이콘을 사용하려면 다음을 사용할 수 있습니다.
android:button="@android:drawable/..."
버튼 틴트는 나를 위해 일했습니다.
안드로이드:버튼틴트="@color/white"
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/agreeCheckBox"
android:text="@string/i_agree_to_terms_s"
android:buttonTint="@color/white"
android:layout_below="@+id/avoid_spam_text"/>
xml »Drawable resource file
res->drawable
예들어대보이, 세요을름를▁it요대▁and,세.checkbox_custom_01.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:drawable="@drawable/checkbox_custom_01_checked_white_green_32" />
<item
android:state_checked="false"
android:drawable="@drawable/checkbox_custom_01_unchecked_gray_32" />
</selector>
파일 recommend 을 사용자 정의 확인란 이미지 파일(png)에 합니다.res->drawable
폴더를 누릅니다.
그런 다음 레이아웃 파일에서 확인란을 다음으로 변경합니다.
<CheckBox
android:id="@+id/checkBox1"
android:button="@drawable/checkbox_custom_01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="CheckBox"
android:textSize="32dip"/>
당신은 어떤 것이든 사용자 지정할 수 있습니다.android:button
이전에 만든 올바른 XML 파일을 가리킵니다.
새내기 참고: 필수 사항은 아니지만 전체 레이아웃 트리에서 고유한 ID로 확인란 이름을 지정하는 것이 좋습니다.
100% 강력한 접근 방식.
저의 경우, 타사 MaterialDialoglib에서 Checkbox를 받기 때문에 XML 레이아웃 소스 파일에 액세스할 수 없었습니다.그래서 저는 이것을 프로그래밍 방식으로 해결해야 합니다.
- ColorStateList를 xml로 만듭니다.
res/color/color_continit_dark_dark_color.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white"
android:state_checked="false"/>
<item android:color="@color/positiveButtonBg"
android:state_checked="true"/>
</selector>
그런 다음 확인란에 적용합니다.
ColorStateList darkStateList = ContextCompat.getColorStateList(getContext(), R.color.checkbox_tint_dark_theme); CompoundButtonCompat.setButtonTintList(checkbox, darkStateList);
사람이 상자에서 ( ). 또한 관심 있는 사용자가 있는 경우 재료 대화 상자에서 확인란을 가져오는 방법이 있습니다(사용자가 설정한 경우)..checkBoxPromptRes(...)
):
CheckBox checkbox = (CheckBox) dialog.getView().findViewById(R.id.md_promptCheckbox);
이게 도움이 되길 바랍니다.
을 변경할 수 .checkbox
한 한 색상 한 줄 의 를 용 한 사 색 상
android:buttonTint="@color/app_color" //whatever color
textColorSecondary가 작동하지 않는 경우 테마에서 colorControlNormal을 다른 색으로 정의했을 수 있습니다.만약 그렇다면, 그냥 사용하세요.
<style name="yourStyle" parent="Base.Theme.AppCompat">
<item name="colorAccent">your_checked_color</item> <!-- for checked state -->
<item name="colorControlNormal">your_unchecked_color</item> <!-- for unchecked state -->
</style>
대부분의 응답은 xml 파일을 통해 이루어집니다.대부분의 Android 버전에 대해 활성화된 답변을 찾았고 두 상태에 대해 한 가지 색상일 경우 확인 취소: 여기 제 솔루션이 있습니다.
코틀린:
val colorFilter = PorterDuffColorFilter(Color.CYAN, PorterDuff.Mode.SRC_ATOP)
CompoundButtonCompat.getButtonDrawable(checkBox)?.colorFilter = colorFilter
Java:
ColorFilter colorFilter = new PorterDuffColorFilter(Color.CYAN, PorterDuff.Mode.SRC_ATOP);
Drawable drawable = CompoundButtonCompat.getButtonDrawable(checkBox);
if (drawable != null) {
drawable.setColorFilter(colorFilter);
}
"colors.xml"에서 다음 두 가지 속성을 사용할 수 있습니다.
<color name="colorControlNormal">#eeeeee</color>
<color name="colorControlActivated">#eeeeee</color>
colorControlNormal은 확인란의 일반 보기용이고 colorControlActivated는 확인란이 선택된 경우용입니다.
안녕하세요. 다크 테마와 라이트 테마의 테마 코드입니다.
<attr name="buttonsearch_picture" format="reference"/>
<attr name="buttonrefresh_picture" format="reference"/>
<style name="Theme.Light" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:windowActionBar">false</item>
<item name="android:textColorPrimary">@color/black</item>
<item name="android:textColorSecondary">@color/black</item>
<item name="android:textColor">@color/material_gray_800</item>
<item name="actionOverflowButtonStyle">@style/LightOverflowButtonStyle</item>
<item name="buttonsearch_picture">@drawable/ic_search_black</item>
<item name="buttonrefresh_picture">@drawable/ic_refresh_black</item>
</style>
<style name="Theme.Dark" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:windowActionBar">false</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/material_gray_500</item>
<item name="android:textColor">@color/material_gray_800</item>
<item name="actionOverflowButtonStyle">@style/DarkOverflowButtonStyle</item>
<item name="buttonsearch_picture">@drawable/ic_search_white</item>
<item name="buttonrefresh_picture">@drawable/ic_refresh_white</item>
<item name="android:colorBackground">#ffffff</item>
<item name="android:alertDialogTheme">@style/LightDialogTheme</item>
<item name="android:alertDialogStyle">@style/LightDialogTheme</item>
<!-- <item name="android:textViewStyle">@style/AppTheme.Widget.TextView</item>-->
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
확인란 색상을 변경하려면 "colorAccent" 특성이 선택한 상태에 사용되고 "android:textColorSecondary" 특성이 선택 취소 상태에 사용됩니다.
"actionOverflowButtonStyle"은 수행 표시줄에서 오버플로 아이콘의 색상을 변경하는 데 사용됩니다.
"buttonsearch_picture" 특성은 수행 표시줄에서 수행 단추의 색조를 변경하는 데 사용됩니다.style.xml의 사용자 지정 특성입니다.
<attr name="buttonsearch_picture" format="reference"/>
제 앱에서 사용하고 있는 새로 고침 버튼도 마찬가지입니다.
"android:popupMenuStyle" 특성은 어두운 테마에서 밝은 테마 팝업 메뉴 스타일을 가져오는 데 사용됩니다.
<style name="PopupMenu" parent="Theme.AppCompat.Light.NoActionBar">
</style>
이것은 제가 Rocks Player 앱에서 사용하고 있는 툴바 코드입니다.
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
app:contentInsetStart="0dp"
android:title="Rocks Player"
android:layout_width="match_parent"
android:elevation="4dp"
android:layout_height="48dp"
app:layout_scrollFlags="scroll|enterAlways"
android:minHeight="48dp"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:background="?attr/colorPrimary"
>
</android.support.v7.widget.Toolbar>
테마:-
<style name="AppTheme0" parent="Theme.Light">
<item name="colorPrimary">#ffffff</item>
<item name="colorPrimaryDark">#cccccc</item>
<item name="colorAccent">#0294ff</item>
</style>
<style name="AppTheme1" parent="Theme.Dark">
<item name="colorPrimary">#4161b2</item>
<item name="colorPrimaryDark">#4161b2</item>
<item name="colorAccent">#4161b2</item>
</style>
설정을 통해 색을 프로그래밍 방식으로 설정하는 훨씬 쉬운 방법이 있습니다.ColorStateList
.
Checkbox.setButtonTintList(ColorStateList.valueOf(getContext().getColor(R.color.yourcolor)))
내 minSdkVersion은15
내 기본 앱주제 부모님은Theme.AppCompat.Light.NoActionBar
프로그래밍 방식으로 확인란을 만들고 있습니다.다음 단계가 저에게 효과가 있었습니다.
Java 코드에서 다음을 변경합니다.
CheckBox checkBox = new CheckBox(context);
로.
AppCompatCheckBox checkBox = new AppCompatCheckBox(context);
style.xml에서 다음을 추가합니다.
<style name="MyCheckboxStyle" parent="Widget.AppCompat.CompoundButton.CheckBox">
<item name="buttonTint">@color/primary_dark</item>
</style>
마지막으로, BaseApp 내에서테마(또는 앱테마) 스타일, 추가:
<item name="checkboxStyle">@style/MyCheckboxStyle</item>
<item name="android:checkboxStyle">@style/MyCheckboxStyle</item>
당신은 아래 코드를 시도해야 합니다.그것은 나에게 효과가 있습니다.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/checked"
android:state_checked="true">
<color android:color="@color/yello" />
</item>
<!-- checked -->
<item android:drawable="@drawable/unchecked"
android:state_checked="false">
<color android:color="@color/black"></color>
</item>
<!-- unchecked -->
<item android:drawable="@drawable/checked"
android:state_focused="true">
<color android:color="@color/yello"></color>
</item>
<!-- on focus -->
<item android:drawable="@drawable/unchecked">
<color android:color="@color/black"></color>
</item>
<!-- default -->
</selector>
및 확인란
<CheckBox
Button="@style/currentcy_check_box_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:text="@string/step_one_currency_aud" />
그리기 가능한 XML을 직접 생성하여 안드로이드로 사용할 수 있습니다. background="@drawable/your_xml"
국경 구석에 모든 것을 줄 수 있다는 점에서.
<item>
<shape>
<gradient
android:endColor="#fff"
android:startColor="#fff"/>
<corners
android:radius="2dp"/>
<stroke
android:width="15dp"
android:color="#0013669e"/>
</shape>
</item>
제 목표는 커스텀 체크박스 버튼을 사용하여 액센트 컬러 버튼 틴트를 제거하는 것이었습니다.저는 수락된 답변을 시도했지만, 지금은 작동했습니다.
에서styles.xml
파일
<style name="Theme.Checkbox" parent="Widget.AppCompat.CompoundButton.CheckBox">
<item name="android:button">@drawable/theme_checkbox_button</item>
<item name="android:drawableLeft">@android:color/transparent</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:buttonTint">@android:color/transparent</item>
<item name="android:buttonTintMode">screen</item>
</style>
이제 이 질문에 대해 필요한 속성만android:buttonTint
그리고.android:buttonTintMode
이제 몇 가지 추가 사항:
- 커스텀 드로잉을 사용해야 했기 때문에
android:button
으로 설정됩니다.selector
그리기 쉬운 - 상자와 텍스트 사이에 약간의 간격이 필요했기 때문에 저는 이 SO 답변을 따라 다음을 설정했습니다.
android:drawableLeft
그리고.android:drawablePadding
의 배경색을 변경할 수 있습니다.<CheckBox>
그것을 a에 내장함으로써.<LinearLayout>
그런 다음 의 배경색을 변경합니다.<LinearLayout>
당신이 원하는 색으로.
위에서 설명한 바와 같이 안드로이드 아이콘을 사용하려는 경우
android:button="@android:drawable/..."
이것은 좋은 옵션이지만, 이것이 작동하기 위해서는 다음과 같이 체크 표시를 표시/숨기기 위해 토글 로직을 추가해야 합니다.
checkBoxShowPwd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
// checkbox status is changed from uncheck to checked.
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int btnDrawable = android.R.drawable.checkbox_off_background;
if (isChecked)
{
btnDrawable = android.R.drawable.checkbox_on_background;
}
checkBoxShowPwd.setButtonDrawable(btnDrawable);
}
});
내가 만든 이 확장 기능을 선호합니다.
fun CheckBox.setTint(@ColorInt color: Int?) {
if (color == null) {
CompoundButtonCompat.setButtonTintList(this, null)
return
}
CompoundButtonCompat.setButtonTintMode(this, Mode.SRC_ATOP)
CompoundButtonCompat.setButtonTintList(this, ColorStateList.valueOf(color))
}
제가 ImageView용으로 가지고 있는 것과 매우 유사합니다. 누구나 원할 경우를 대비해서 말이죠.
fun ImageView.setTint(@ColorInt color: Int?) {
if (color == null) {
ImageViewCompat.setImageTintList(this, null)
return
}
ImageViewCompat.setImageTintMode(this, Mode.SRC_ATOP)
ImageViewCompat.setImageTintList(this, ColorStateList.valueOf(color))
}
아래 코드 행을 사용하여 Java 코드에서 확인란의 배경을 동적으로 변경할 수 있습니다.
//Setting up background color on checkbox.
checkbox.setBackgroundColor(Color.parseColor("#00e2a5"));
이 답변은 이 사이트에서 온 것입니다.또한 이 사이트를 사용하여 RGB 색상을 16진수 값으로 변환할 수 있습니다. parseColor를 입력해야 합니다.
언급URL : https://stackoverflow.com/questions/5854047/how-to-change-the-color-of-a-checkbox
'programing' 카테고리의 다른 글
장고에서 양식에 대한 테스트를 어떻게 작성해야 합니까? (0) | 2023.07.31 |
---|---|
이름에 점(.)이 있는 PowerShell 환경 변수 (0) | 2023.07.31 |
다중 사용자 ASP의 정적 변수 범위.NET 웹 애플리케이션 (0) | 2023.07.31 |
모든 패키지에 대해 'pip 설치'가 실패함("요구 사항을 충족하는 버전을 찾을 수 없음") (0) | 2023.07.31 |
PL/SQL에 "LIKE %"(예: "variable %")가 있는 변수를 사용하시겠습니까? (0) | 2023.07.31 |