3

Я хочу программно создать фон объекта TextView, но также иметь эффект пульсации для него.Задайте фон на объекте TextView и поддерживайте эффект пульсации

Я могу использовать с фоном, установленным на android:selectableItemBackground, но эффект пульсации теряется при настройке фона.

Я также попытался положить ImageView вместе с TextView в FrameLayout. И установите изображение не как фон TextView, а как изображение ImageView: Да, пульсация есть, но, похоже, это «позади» изображение.

Должен ли я создать RippleDrawable из растрового изображения для фона? Как мне это сделать?

ответ

0

RippleDrawable решение:

RippleDrawable newImage = new RippleDrawable(
     new ColorStateList(
       new int[][]{ 
         new int[]{android.R.attr.state_pressed}, 
         new int[]{} 
       }, 
       new int[] { 
         getResources().getColor(R.color.ripple_material_light), 
         getResources().getColor(R.color.ripple_material_dark), 
       }), 
       new BitmapDrawable(getResources(), mapBitmap), 
       null); 
textView.setBackground(newImage); 
+0

Что такое, что 'mapBitmap' аргумент в' BitmapDrawable' конструктора? –

+0

Это битмап. 'RippleDrawable' доступен только с API версии 21. –

4

У меня была такая же проблема, как вы и фиксировали его с помощью
android:foreground="?attr/selectableItemBackground" на FrameLayout.

Вот пример FrameLayout:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/more" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clickable="true" 
    android:foreground="?attr/selectableItemBackground"> 
    <ImageView 
     android:id="@+id/discover_carousel_item_image" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:scaleType="fitXY" /> 
</FrameLayout> 
+0

Я не знаю, работает ли' foreground' в определенных случаях, но в моем случае я переключил его на «фон», и в представлении начали отображаться эффекты пульсации при касании. –

Смежные вопросы