Я хочу встановити ефект пульсації на перегляд тексту та перегляд зображень в Android Studio. Як я можу це зробити?
Я хочу встановити ефект пульсації на перегляд тексту та перегляд зображень в Android Studio. Як я можу це зробити?
Відповіді:
Посилання: 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"
/>
android:background="?android:attr/selectableItemBackground"
Borderless
youtube.com/watch?v=wOjA8tS5sbc
Якщо ви хочете, щоб пульсація була обмежена розміром використання TextView / ImageView:
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(Я думаю, що це виглядає краще)
selectableItemBackground
vsselectableItemBackgroundBorderless
Нижче наведено відповідь щодо ефекту пульсацій.
пульсація в Textview або перегляді:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
пульсація на кнопці або перегляді зображень:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
selectableItemBackgroundBorderless
це API 21+. Нижче ви можете selectableItemBackground
уникнути проблеми сумісності
Можна використовувати 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();
<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" />
спробуйте це.
спробуйте це. Це для мене працює.
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
На додаток до вищезазначених відповідей додається фокусується, щоб уникнути попередження редактора інтерфейсу користувача
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
У випадку, якщо рішення про голосування, опубліковане @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"
оскільки:
" Віджет, оголошений таким, що можна натискати, але не оголошений фокусируваним, недоступний через клавіатуру. "
Додайте
android:clickable="true"
android:focusable="true"
Для ефекту Ripple
android:background="?attr/selectableItemBackgroundBorderless"
Для вибору ефекту
android:background="?android:attr/selectableItemBackground"
Для ефекту Кнопки
android:adjustViewBounds="true" style="?android:attr/borderlessButtonStyle"
Окрім відповіді @Bikesh M Annur, обов’язково оновіть свої бібліотеки підтримки. Раніше я використовував 23.1.1 і нічого не сталося. Оновлення його до 23.3.0 зробило трюк.
для пульсації кола:
android:background="?attr/selectableItemBackgroundBorderless"
для пульсації прямокутника:
android:background="?attr/selectableItemBackground"
Або ви можете спробувати використовувати цю бібліотеку (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>
selectableItemBackground
коли орієнтуєтесь на Android 4 і вище.
Використання бібліотек. Це одна з них. Просто додайте її залежність і поставте нижче коду в xml перед кожними елементами, які потребують ефекту пульсації:
<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">