Я пытаюсь воспроизвести эффект ряби, когда нажата кнопка, я следовал многим инструкциям по переполнению стека и по сети, но безуспешно. Может ли кто-нибудь указать мне правильное направление? Мой XML выглядит правильно, но ничего не происходит, когда я нажимаю кнопку.

Спасибо!

< Сильный > Ripple_animation.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- thanks to http://www.viralandroid.com/2015/09/how-to-add-ripple-effect-to-android-button.html !-->

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/ripple_Orange"
    tools:targetApi="lollipop">
    <item android:id ="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color = "@color/ripple_Orange"/>
        </shape>
    </item>

</ripple>

применение эффекта ряби к кнопке

 <ImageButton
        android:id="@+id/one_button"
        android:background="@drawable/ripple_animation"
        android:padding="0dp"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:layout_width="85dp"
        android:layout_height="85dp"
        app:srcCompat="@drawable/one_button_500_500"
        android:layout_below="@+id/four_button"
        android:layout_alignParentStart="true" />
0
Lontronix 28 Май 2017 в 19:05

2 ответа

Лучший ответ

Вы задаете пульсацию как атрибут background.
Это означает, что он нарисован за изображением src.

Вместо этого установите его в качестве переднего плана этого представления или его родителя:

android:foreground="@drawable/ripple_animation"
1
RobCo 28 Май 2017 в 16:16

Попробуйте показать эффект пульсации устройства по умолчанию

<?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:foreground="?android:selectableItemBackground">

        <ImageButton
            android:id="@+id/one_button"
            android:background="@drawable/ripple_animation"
            android:padding="0dp"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"
            android:layout_width="85dp"
            android:layout_height="85dp"
            app:srcCompat="@drawable/one_button_500_500"
            android:layout_below="@+id/four_button"
            android:layout_alignParentStart="true" />
    </FrameLayout>
1
Aniruddh Parihar 28 Май 2017 в 16:20