Эффект сенсорного эффекта Android L на форме?

У меня есть округленный прямоугольник с высотой, которая бросает тень, как в примере здесь: http://developer.android.com/preview/material/views-shadows.html#shadows

Вот моя форма:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@android:color/white" /> <corners android:radius="6dp" /> </shape> 

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

Итак, я сделал это в layer-list :

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@android:color/white" /> <corners android:radius="6dp" /> </shape> </item> <item android:drawable="?android:selectableItemBackground" /> </layer-list> 

Теперь я получаю приятную обратную связь при нажатии, но есть проблема.

Контур округлой формы прямоугольника был потерян. Он по-прежнему рисует белый округлый прямоугольник, но тень отбрасывается как некруглый прямоугольник (квадратные края), и рябь проходит по углам:

Плохие углы

Здесь это выглядит не слишком ужасно, но на устройстве это довольно уродливо и непринужденно.

Есть ли способ исправить это? Раздел Outline первой ссылки кажется тем, что я хочу, но я не могу понять, как его реализовать.

Solutions Collecting From Web of "Эффект сенсорного эффекта Android L на форме?"

Попробуйте это:

ripple.xml

 <?xml version="1.0" encoding="utf-8"?> <ripple android:color="@color/COLOR_WHILE_PRESSING" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/background"></item> </ripple> 

background.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/BACKGROUND_COLOR" /> <corners android:radius="6dp" /> </shape> 

Или, может быть, этот пост вам поможет: Android L FAB Button shadow

Я объяснил там, как реализовать новую кнопку FAB, я также использовал схему для этого.

Нажмите здесь, чтобы получить полный исходный код

Создать button.xml в папке с возможностью переноса

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/colorPrimaryDark"/> <item android:drawable="@color/colorPrimary"/> </selector> 

Создайте файл button.xml в папке drawable-v21

 <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight"> <item android:drawable="@color/colorPrimary" /> </ripple> 

Вы можете установить button.xml в качестве фона вашего представления.

 <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:background="@drawable/button" android:clickable="true" android:gravity="center" android:padding="16dp" android:text="Android Ripple Effect Custom" android:textColor="#fff" android:textSize="18sp" /> 

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

 <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="colorControlHighlight">@color/colorPrimaryDark</item> </style> </resources> 

Пульсирующая кнопка эффекта касания в студии Android

  <com.xgc1986.ripplebutton.widget.RippleButton android:id="@+id/Summit" android:layout_width="260dp" android:layout_height="50dp" android:text="Login" android:textColor="@color/white" android:textStyle="bold" app:buttonColor="@color/Button" app:rippleColor="@color/white" /> 

Для получения дополнительной информации нажмите здесь http://androiddhina.blogspot.in/2015/04/android-ripple-touch-effect-example.html

 <RelativeLayout android:foreground="?android:attr/selectableItemBackground"> </RelativeLayout>