2016-03-03 5 views
6

У меня мало TextView s, которые отображаются рядом друг с другом. В настоящее время я использую android:background="?attr/selectableItemBackground", чтобы получить пульсацию при касании.Рябь с рамкой для TextView?

Теперь я хотел бы добавить границы к TextView с, когда они не нажимаются и имеют пульсацию при касании TextView. Как мне это сделать?

ответ

10

Основываясь на Styling Android blog post:

Другой способ, которым мы можем ограничить пределы волновой анимации для фактически определяют форму рисуемых как ребенок

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@android:color/white" /> 
      <stroke 
       android:color="@color/card_set_bg_color" 
       android:width="1dp" /> 
     </shape> 
    </item> 
</ripple> 

Здесь <solid> в <shape> необходим для визуализации ряби. Если установлено значение transparent или опущено, пульсация не отображается. Для пульсации нужен сплошной фон для рендеринга. TextView s не имеют цвета фона, поэтому нам нужно указать <solid>.

+1

Очень гениальное решение и +1 для ответа от собеседника. –