2016-05-13 5 views
4

У меня есть кнопка андроида, где я хочу, чтобы придать ему цвет фона и как мультипликационный эффектAndroid Кнопка Цветом фона Ripple Effect

мой пульсация XML, как показано ниже.

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:color="#BDA0CB" 
    tools:targetApi="lollipop"> 
    <item android:id="@android:id/mask"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#BDA0CB" /> 
     </shape> 
    </item> 
</ripple> 

и моя кнопка

<Button android:id="@+id/Button_activity_login_ViewProfile" style="?android:textAppearanceSmall" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" android:text="Save" 
     android:textStyle="bold" 
     android:layout_marginLeft="@dimen/margin_left" 
     android:layout_marginRight="@dimen/margin_right" 
     android:textColor="#ffffffff" 
     android:fontFamily="sans-serif" 
     android:background="#ff7e51c2" /> 

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

+0

https://github.com/traex/RippleEffect –

ответ

6

Этого можно достичь, добавив android: drawable в ваш ripple.xml.

Сначала добавьте это в свой цвет.xml. Предположим, что # ff7e51c2 - цвет фона, который вы хотите для своей кнопки.

... 
<color name="btn_bg_color">#ff7e51c2</color> 
.... 

Затем создайте вытяжку для фона кнопки (/drawable/btn_bg.xml):

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

Затем использовать вытяжку в вашем ripple.xml:

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

Вы можете что-то вроде этого в xml:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/ripple"/> 

Изменение ripple.xml в папке drawable/ следующим образом:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
        android:color="?android:colorControlHighlight"> 
    <item android:id="@android:id/mask"> 
     <shape android:shape="oval"> 
      <solid android:color="?android:colorAccent" /> 
     </shape> 
    </item> 

1

создать ripple_effect.xml в вашей вытяжке папке

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:color="#1182bc" 
    tools:targetApi="lollipop"> 
    <item android:id="@android:id/mask"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#1182bc" /> 
     </shape> 
    </item> 
</ripple> 

использовать этот XML в качестве фона на ваш взгляд как ниже

android:background="@drawable/ripple_effect" 

надеюсь, это поможет ..

0

Создайте две разные версии xml-файла, чтобы они работали на устройствах Pre Lollipop.

вытяжка/button_effect.xml: -

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

вытяжка-v21/button_effect.xml: -

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:tools="http://schemas.android.com/tools" 
    android:color="#635a5a" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    tools:targetApi="lollipop"> 
    <item android:drawable="@drawable/round_button" /> 
</ripple> 

Создание профилированной вытяжки в вытяжке папки

drawable/round_button.xml: -

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

Вы можете сделать что-то подобное в макете.xml:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/button_effect"/> 
Смежные вопросы