Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Estilizar los botones de material en Android v21

Estoy tratando de mantener el efecto de ondulación de diseño de material para dispositivos con piruleta y arriba (21 +) y estilizar el botón para que no tiene un gran margen / espacio alrededor de él.

Ejemplo 1: Botones con efecto de ondulación pero con margen / separación:

Me gusta el efecto ripple de esta versión, pero no la brecha en el diseño

Ejemplo 2: Botones sin efecto de ondulación y sin el margen / hueco:

Quiero el diseño de esta versión, pero con el efecto ripple

Quiero el diseño de Exmaple 2 con el efecto de rizado que se utiliza en el Ejemplo 1 .

Lo que mis styles-v21 parecen para el ejemplo 1 :

 <?xml version="1.0" encoding="utf-8"?> <resources> ... other styles ... <style name="FacebookButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ff3b5998</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="GoogleButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ffdd4b39</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="TwitterButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ff55acee</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="SkipButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ffdfa800</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> </resources> 

Lo que mi diseño de botón se ve como para el ejemplo 1 :

 <Button android:id="@+id/login_with_facebook" android:text="@string/login_with_facebook" android:fontFamily="sans-serif-condensed" android:textSize="16sp" android:drawableLeft="@drawable/facebook_icon" android:drawablePadding="25dp" android:layout_width="match_parent" android:layout_height="45dp" android:layout_weight="16.88" android:textColor="#ffffff" android:gravity="left|center_vertical" android:paddingLeft="45dp" android:theme="@style/FacebookButton" /> <Button android:id="@+id/login_with_google" android:text="@string/login_with_google" android:fontFamily="sans-serif-condensed" android:textSize="16sp" android:drawableLeft="@drawable/google_icon" android:drawablePadding="25dp" android:layout_width="match_parent" android:layout_height="45dp" android:layout_weight="16.88" android:textColor="#ffffffff" android:gravity="left|center_vertical" android:paddingLeft="45dp" android:theme="@style/GoogleButton" /> <Button android:id="@+id/twitter_login_button" android:text="@string/login_with_twitter" android:fontFamily="sans-serif-condensed" android:textSize="16sp" android:drawableLeft="@drawable/twitter_icon" android:drawablePadding="25dp" android:layout_height="45dp" android:gravity="left|center_vertical" android:layout_width="match_parent" android:layout_weight="16.88" android:textColor="#ffffffff" android:paddingLeft="45dp" android:theme="@style/TwitterButton" /> <Button android:id="@+id/login_anonymously" android:text="@string/login_anonymously" android:fontFamily="sans-serif-condensed" android:textSize="16sp" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="50" android:textColor="#ffffffff" android:theme="@style/SkipButton" /> 

¿Alguna idea de cómo puedo lograr el aspecto del ejemplo 2 mientras uso la metodología de ondulación que he presentado? Cualquier vínculo a recursos o ayuda sería apreciado. Gracias.

Extra:
Ya he leído sobre lo siguiente

  • Colorear botones en Android con Material Design y AppCompat
  • Cómo diseñar adecuadamente los botones de material en android

  • ¿Qué significa el número junto a un color?
  • Selector de fecha de Android en un diálogo
  • Error: (2, 0) Plugin con id 'com.github.dcendents.android-maven' no encontrado
  • El botón de acción flotante aparece sobre el cajón de navegación
  • ¿Cuál debe ser el color de la ondulación, colorPrimary o colorAccent? (Diseño de material)
  • La barra de progreso de círculo indeterminado en android es blanca, a pesar de colorAccent color
  • ¿Cómo se puede agregar una línea de divisor en un Android RecyclerView?
  • Barra de estado y barra de estado translúcida
  • One Solution collect form web for “Estilizar los botones de material en Android v21”

    Puedes usar android:background="?android:attr/selectableItemBackground" para obtener una ondulación rectangular.

    Alternativamente, puede crear su propio dibujable. Aquí está el XML para el fondo seleccionable del marco:

    Drawable / item_background_material.xml:

     <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"> <item android:id="@android:id/mask"> <color android:color="@android:color/white" /> </item> </ripple> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.