#android #android-button
#Android #android-кнопка
Вопрос:
Я пытался добиться обычных эффектов кнопок Android, когда кнопка уже установлена с фоновым изображением
Но проблема в том, что после установки фона природа кнопки по умолчанию исчезает (тени, интерактивная анимация и т. Д.)
Может кто-нибудь, пожалуйста, дать мне рабочие решения для этого?
Вот код моей кнопки
<Button style="@style/Widget.AppCompat.Button.Colored"
android:id="@ id/student"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/student"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintVertical_bias="0.891" />
Это выглядит потрясающе, поскольку я установил фоновое изображение, но оно по-прежнему выглядит так, как будто вы установили изображение на a jLabel
в Java)
Как я могу получить внешний вид кнопки по умолчанию, сохранив фоновое изображение без изменений?
Ответ №1:
Кнопка работает, устанавливая фон на фон с высотой, тенями, рябью и т. Д. Чтобы добиться такого же поведения, вам нужно будет установить для вашего фона StateListDrawable, который выполняет эффект пульсации и помещает тени и эффекты рельефа с вашим изображением в качестве фона внутри всего этого. Вы не можете просто установить фон в качестве своего изображения, это потеряет все эти функции. Самый простой способ сделать это правильно — посмотреть исходный код AOSP и найти используемый в нем чертеж, скопировать его в свой проект и отредактировать соответствующим образом.
По сути, в Android кнопка — это просто текстовое представление со специальной предустановкой фона.
Комментарии:
1. Можете ли вы показать мне, как установить StateListDrawable для кнопки?
Ответ №2:
Почему вы не используете ImageButton
виджет? Он ведет себя так же, как Button
и ImageView
в сочетании с
Ознакомьтесь с этим руководством, чтобы узнать, как с ним работать.
как указано в официальной документации
Отображает кнопку с изображением (вместо текста), которую пользователь может нажать или щелкнуть. По умолчанию ImageButton выглядит как обычная кнопка со стандартным фоном кнопки, который меняет цвет при разных состояниях кнопки. Изображение на поверхности кнопки определяется либо атрибутом android:src в элементе XML, либо методом ImageView.setImageResource(int)
Комментарии:
1. Но это не похоже на кнопку с поведением кнопок по умолчанию