2011-05-05 7 views
1

Android의 확인란을 부분적으로 변경하려고합니다. 튜토리얼 here에 따라, 나는 다음과 같은 실험을 수행 한 :Android 체크 박스 사용자 정의

<CheckBox 
    android:checked="true" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"/> 
<CheckBox 
    android:checked="true" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:button="@android:drawable/btn_check_on" 
    android:background="@android:drawable/btn_check_label_background"/>  
<CheckBox 
    android:checked="true" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:button="@drawable/cb_on" 
    android:background="@drawable/cb_background"/> 

세 번째 체크 박스를, 나는 프로젝트의 고해상도 안드로이드의 SDK에서 btn_check_label_background.9.png 및 을 btn_check_on.png 이미지 을 복사 한/드로어 블cb_on.pngcb_background.png으로 이름을 바꿉니다. 세 개의 체크 박스가 동일한 모양을 갖기를 기대했지만 놀랍게도 세 번째 체크 박스는 처음 두 개보다 큽니다. 아무도 이유를 설명 할 수 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

답변

1

내 생각 엔 드로어 블의 한 해상도 만 복사했을 것입니다. 당신은

+0

감사합니다. @Jokahero도 맞습니다. 배경 이미지의 복사본은 .9.png 확장자로 이름을 지정해야합니다. 사실 배경 이미지 없이는 할 수 있습니다. – user740006

+0

(1) 아직 해결되지 않은 한 가지 문제가 있습니다. SDK에 ldpi 리소스가 포함되어 있지 않은 것 같습니다. 따라서 프로젝트의 drawable-ldpi에 복사 할 것이 없습니다. mdpi를 ldpi에 복사하면 작동하지 않습니다. (2) mdpi의 경우, Android의 drawable-mdpi에서 프로젝트의 drawable-mdpi * 및 * drawable로 복사해야하는 것 같습니다. 그렇지 않으면 안드로이드 1.5에서 제대로 표시되지 않습니다. – user740006

+0

아마도 ldpi 이미지는 필요하지 않습니다. 정말로 원한다면 포토샵이나 짐프를 사용하여 mdpi를 축소 할 수 있습니다. – jkhouw1

2

하는

을 cb_background.9.png에 이미지 cb_background.png 이름을 바꾸는 시도 적합한 고해상도 폴더 (당김 - MDPI, 당김-hdpi에, 당김 - LDPI)에 (MDPI, hdpi에, LDPI)을 모두 복사해야

.9는 이미지가 자동으로 자동 조정되도록 수행되는 9 패치 이미지임을 의미합니다.

제 3의 이미지가 왜 더 큰지 생각합니다. 아홉 패치에 대한 자세한 내용은

는 : here

+0

감사합니다. 그러나 @ jkhouw1에 언급 된 수정 사항도 필요합니다. – user740006

1

@Jokahero는 9 패치에 대한 권리이고, @의 jkhouw1는 해상도에 대한 권리입니다. 체크 박스의 경우 StateListDrawable에 대해서도 알아야합니다.

+0

예. 포인터 주셔서 감사. – user740006

관련 문제