Android: Java-эквивалент Android: Атрибут кнопки? - PullRequest
0 голосов
/ 01 апреля 2012

Есть ли способ установки атрибута android: button чисто-java? Мой вариант использования - у меня есть несколько кнопок с пользовательскими изображениями. В настоящее время они представлены в формате xml, но по нескольким причинам я хочу, чтобы их создание делалось на чистом Java. В настоящее время android:button ссылается на файл <selector> xml:

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

Есть ли способ либо

  • ссылка на файл <selector> xml в java
  • полностью пропустить <selector> и просто установить state_checked изображение в java?

1 Ответ

0 голосов
/ 01 апреля 2012

Да, вы можете установить селектор изображений xml через код.Если вы хотите установить селектор на RadioButton, вы должны вызвать его setButtonDrawable(idOfYourSelector).

Код будет выглядеть следующим образом:

((RadioButton)findViewById(R.id.yourRadioButton)).setButtonDrawable(R.drawable.yourSelector);

Если вы хотите установить толькоизображение, которое вы использовали для state_checked, тогда вам нужно указать идентификатор вашего state_checked изображения на setButtonDrawable(idOfYourImage) вместо идентификатора вашего селектора.В вашем случае это будет:

((RadioButton)findViewById(R.id.yourRadioButton)).setButtonDrawable(R.drawable.red_down_full);

Чтобы убедиться, что он не будет перекрывать метку вашего RadioButton, вы должны знать ширину вашего drawable.Затем установите левый отступ вашего RadioButton в зависимости от ширины вашего drawable.Это обеспечит, чтобы изображение вашего RadioButton не перекрывало его метку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...