Я хочу установить эффект пульсации на textview и imageview в Android Studio. Как я могу это сделать?
Ответ 1
Ссылка: http://developer.android.com/training/material/animations.html,
http://wiki.workassis.com/category/android/android-xml/
<TextView
.
.
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
/>
<ImageView
.
.
.
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
/>
Ответ 2
Если вы хотите, чтобы рябь была ограничена размером TextView/ImageView, используйте:
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(я думаю, он выглядит лучше)
Ответ 3
Вы можете использовать android-ripple-background
Эффект начала
final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
rippleBackground.startRippleAnimation();
}
});
Остановка анимации:
rippleBackground.stopRippleAnimation();
Ответ 4
<TextView
android:id="@+id/txt_banner"
android:layout_width="match_parent"
android:text="@string/banner"
android:gravity="center|left"
android:layout_below="@+id/title"
android:background="@drawable/ripple_effect"
android:paddingLeft="15dp"
android:textSize="15sp"
android:layout_height="45dp" />
добавить это в удобочитаемый
<?xml version="1.0" encoding="utf-8"?>
<!--this ribble animation only working for >= android version 21-->
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/click_efect" />
попробуйте это.
Ответ 5
Или вы можете попробовать использовать эту библиотеку (android 9+): RippleEffect
Интеграция
dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}
Применение:
<com.andexert.library.RippleView
android:id="@+id/more"
android:layout_width="?android:actionBarSize"
android:layout_height="?android:actionBarSize"
android:layout_toLeftOf="@+id/more2"
android:layout_margin="5dp"
rv_centered="true">
<ImageView
android:layout_width="?android:actionBarSize"
android:layout_height="?android:actionBarSize"
android:src="@android:drawable/ic_menu_edit"
android:layout_centerInParent="true"
android:padding="10dp"
android:background="@android:color/holo_blue_dark"/>
</com.andexert.library.RippleView>
Ответ 6
Лучший способ - использовать библиотеки. Это один из них. Просто добавьте его зависимость и поставьте ниже код в xml перед каждым элементом, который нуждается в эффекте пульсации:
<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">
Ответ 7
В дополнение к @Bikesh M Annur ответьте, обязательно обновите свои библиотеки поддержки. Раньше я использовал 23.1.1, и ничего не происходило. Обновление его до 23.3.0 сделало трюк.
Ответ 8
В случае хорошо проголосовавшего решения, отправленного @Bikesh M Annur (здесь), вам не подходит, попробуйте использовать:
<TextView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
<ImageView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
Кроме того, при использовании android:clickable="true"
добавьте android:focusable="true"
, потому что:
"Виджет, объявленный кликабельным, но не объявляемый для фокусировки, недоступен с клавиатуры."