[android] Android : CheckBox 크기를 변경하는 방법은 무엇입니까?

CheckBox를 조금 더 작게 / 더 크게 만들고 싶습니다. 어떻게해야합니까?



답변

관련 드로어 블을 설정하고 확인란에서 설정하기 만하면됩니다.

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="new checkbox"
    android:background="@drawable/my_checkbox_background"
    android:button="@drawable/my_checkbox" />

트릭은 드로어 블을 설정하는 방법입니다. 이것에 대한 좋은 튜토리얼이 있습니다.


답변

API 레벨 11부터 다른 접근 방식이 있습니다.

<CheckBox
    ...
    android:scaleX="0.70"
    android:scaleY="0.70"
/>


답변

드로어 블을 자르거나 흐리게 처리하지 않는 더 나은 솔루션이 있습니다.하지만 체크 박스에 텍스트 자체가없는 경우에만 작동합니다 (하지만 여전히 텍스트를 가질 수 있습니다. 더 복잡합니다. 끝 부분 참조).

<CheckBox
    android:id="@+id/item_switch"
    android:layout_width="160dp"    <!-- This is the size you want -->
    android:layout_height="160dp"
    android:button="@null"
    android:background="?android:attr/listChoiceIndicatorMultiple"/>

결과:

이전 솔루션의 모습 scaleXscaleY모습 :

TextView옆에를 추가하고 상위 레이아웃에 클릭 리스너를 추가 한 다음 프로그래밍 방식으로 확인란을 트리거하여 텍스트 확인란을 만들 수 있습니다 .


답변

글쎄요 많은 답변을 찾았지만 UI와 같은 확인란이있는 텍스트가 필요할 때 텍스트없이 잘 작동합니다.여기에 이미지 설명 입력

여기 내 UI 요구 사항에 따라 TextSize를 늘릴 수 없으므로 시도한 다른 옵션은 scaleX 및 scaleY (확인란 선택) 및 .png 이미지가있는 사용자 정의 xml 선택기입니다 (화면 크기가 다른 문제도 발생합니다)

하지만이를위한 또 다른 솔루션이 있습니다. 바로 Vector Drawable입니다.

3 단계로 수행하십시오.

1 단계: 이 세 가지 Vector Drawable을 드로어 블 폴더에 복사

checked.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
    android:fillColor="#FF000000"
    android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" />
</vector>

un_checked.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
    android:fillColor="#FF000000"
    android:pathData="M19,5v14H5V5h14m0,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z" />
</vector>

( Android Studio로 작업하는 경우 여기에서 이러한 Vector Drawable을 추가하고 드로어 블 폴더를 마우스 오른쪽 버튼으로 클릭 한 다음 New / Vector Asset을 클릭 한 다음 여기에서 드로어 블을 선택하십시오 )

2 단계: check_box에 대한 XML 선택기 만들기

check_box_selector.xml

<?xml version="1.0" encoding="utf-8"?>

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

3 단계 : 해당 드로어 블을 확인란으로 설정

<CheckBox
android:id="@+id/suggectionNeverAskAgainCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:button="@drawable/check_box_selector"
android:textColor="#FF000000"
android:textSize="13dp"
android:text="  Never show this alert again" />

이제는 다음과 같습니다.

여기에 이미지 설명 입력


너비와 높이 또는 viewportHeight 및 viewportWidth 및 fillColor를 변경할 수도 있습니다.


도움이 되길 바랍니다!


답변

나는 사용한다

android:scaleX="0.70"
android:scaleY="0.70"

확인란의 크기를 조정하려면

그런 다음 여백을 이렇게 설정합니다

android:layout_marginLeft="-10dp"

확인란의 위치를 ​​조정합니다.


답변

내가 한 일은 다음과 같습니다.

android:button="@null"

또한 설정

android:drawableLeft="@drawable/selector_you_defined_for_your_checkbox"

그런 다음 Java 코드에서 :

Drawable d = mCheckBox.getCompoundDrawables()[0];
d.setBounds(0, 0, width_you_prefer, height_you_prefer);
mCheckBox.setCompoundDrawables(d, null, null, null);

저에게도 효과가 있으며, 여러분에게도 효과가 있기를 바랍니다!


답변

업데이트 : 이것은 API 17 이상에서만 작동합니다 …


이미 주어진 다른 훌륭한 답변에 추가하려면 확인란을 텍스트 크기가 허용하는만큼 작게 만들 수 있습니다.

이 질문에 대한 내 대답에 따르면- 확인란의 크기를 어떻게 줄일 수 있습니까?


CheckBox TEXT와 이미지에서 높이를 가져옵니다.

XML에서 다음 속성을 설정합니다.

android:text=""
android:textSize="0sp"

물론 이것은 당신이 텍스트를 원하지 않는 경우에만 작동합니다 (저를 위해 일했습니다).

이러한 변경 없이는 CheckBoxJoe가 언급했듯이 내 이미지 주변에 큰 차이를주었습니다.