Настройка Android чекбокс - PullRequest
1 голос
/ 05 мая 2011

Я пытаюсь частично изменить изображения для флажков 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"/>

Для третьего флажка я скопировал изображения btn_check_on.png и btn_check_label_background.9.png из SDK Android в res / drawable проекта и переименуйте их в cb_on.png и cb_background.png . Хотя я ожидал, что три флажка будут иметь одинаковый внешний вид, удивительно, но третий флажок больше, чем первые два. Кто-нибудь может объяснить, почему? Как я могу решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

Попробуйте переименовать ваше изображение cb_background.png в cb_background.9.png

.9 означает, что это изображение из девяти патчей, которое сделано для автоматической перемасштабирования.

Я думаювот почему третье изображение больше.

Для получения дополнительной информации о девять-патч: здесь

1 голос
/ 05 мая 2011

@ Jokahero прав насчет 9-патча, а @ jkhouw1 прав насчет разрешений. Для флажков вам также необходимо знать о StateListDrawable .

1 голос
/ 05 мая 2011

Полагаю, вы скопировали только одно разрешение отрисовок. Вам необходимо скопировать их все (mdpi, hdpi, ldpi) в соответствующую папку res (drawable-mdpi, drawable-hdpi, drawable-ldpi)

...