@asdf999
Android Programmer

Как быстро сделать эффект нажатия для ImageView или Button с картинкой?

Есть некое изображение или программно созданный Drawable, который прописывается в ImageView или Button. Надо сделать эффект нажатия, чтобы быстро и было по возможности красиво.

Как это сделать?
  • Вопрос задан
  • 8136 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanKiLL
@FanKiLL
А какой эффект интересует, именно анимация, или смена цвета, бордера, смена размера шрифта?
Тогда это можно сделать стилями.

Например красная кнопка
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#ef4444" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#ef4444"
                android:endColor="#992f2f"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>


Обратите внимание на android:state_pressed="true" означает когда кнопка например нажата, это разные состояния, подробней можете прочитать тут

таких состояний довольно много - например android:state_focused

Так можно поменять полностью дизайн кнопки

Цепляете потом этот стиль к кнопке в layout

<Button
                    android:id="@+id/btnCansel"
                    style="@style/button"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/custom_red_button"
                    android:onClick="onClickCanselButton"
                    android:text="@string/clear" />


Обратите внимание на android:background="@drawable/custom_red_button" тут цепляется стиль с описанием разных состояний к кнопке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы