ImageButton устанавливает рисование с помощью @android: drawable / программно - PullRequest
0 голосов
/ 05 ноября 2019

В моем макете XML есть следующая кнопка с изображением

<ImageButton
    android:id="@+id/show_only_checked"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_weight="0"
    android:src="@android:drawable/arrow_down_float"
    tools:src="@android:drawable/arrow_down_float" />

Отлично. Работает отлично. Но я хочу переключить его в событии onClick () на версию up drawable в коде. Каждый раз, когда пользователь нажимает кнопку, я хочу переключаться между стрелками вверх и вниз. Я, кажется, слишком плотный, чтобы понять это. Я попробовал следующий код, но безуспешно.

if (ShowOnlyChecked) {
    view.setBackground(Drawable.createFromPath("@android:drawable/arrow_up_float"));
} else {
    view.setBackground(Drawable.createFromPath("@android:drawable/arrow_down_float"));
}

Любая помощь будет признательна.

Часть моей проблемы заключалась в том, как ссылаться на "android.R ..."вытяжка. Другой был метод для вызова.

Ответы [ 3 ]

1 голос
/ 05 ноября 2019

Ваш код изменит фоновое изображение представления.

Вот как установить изображение кнопки:

((ImageButton) view).setImageResource(R.drawable.arrow_down_float);
1 голос
/ 05 ноября 2019

Поскольку вы используете компонент ImageButton, вы устанавливаете вещи во время выполнения неправильно, потому что Drawable.createFromPath предоставляет путь для рисования, например, абсолютный или желаемый путь. Если вы хотите установить стрелку, попробуйте добавить изображения стрелки с различным разрешением в зависимости от папки ресурсов или youId.setBackgroundResource(android:R.drawable.id) или получите изображения отсюда

https://material.io/resources/icons/?style=baseline

1 голос
/ 05 ноября 2019

попробуй:

 imageButton.setBackgroundResource(android.R.drawable.arrow_up_float);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...