Cómo crear sombra de botón en el estilo de diseño de material android
Nuevas directrices de diseño de materiales introducen botones elevados que están cayendo una bonita sombra. De acuerdo con la documentación del SDK de vista previa, habrá un atributo de elevation
disponible en el nuevo SDK. Sin embargo, ¿hay alguna manera de lograr un efecto similar ahora?
- Cambiar la forma o la sombra del icono o eliminarlo por completo
- Android Eliminar sombra en el cajón de navegación
- Cambiar dragshadow en android, mientras arrastra sucede
- Cambio de Android Color de sombra de elevación de material
- Cambiar automáticamente el fondo del botón y el aspecto del texto cuando se presiona (como iOS)?
- ¿Tiene el sistema operativo Android archivos como / etc / passwd, / etc / shadow y / etc / group?
- Cómo eliminar la sombra circundante FloatingActionButton?
- FloatingActionButton sombra en pre-lollipop
- Cómo deshabilitar la sombra azul en el desplazamiento (aplicaciones de Android).
- Androide diseño biblioteca barra de herramientas sombra
- Robolectric sombra no funciona
- La sombra CardView no se procesa cuando se convierte en mapa de bits
- La elevación no se muestra en la barra de herramientas de los dispositivos pre-pirulí
Esto funcionó para mí.
Diseño con botón
<Button xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/button_size" android:layout_height="@dimen/button_size" android:background="@drawable/circular_button_ripple_selector" android:textAppearance="?android:textAppearanceLarge" android:textColor="@color/button_text_selector" android:stateListAnimator="@anim/button_elevation"/>
Drawble / button_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/button_selected"/> <item android:state_pressed="true" android:drawable="@drawable/button_pressed"/> <item android:drawable="@drawable/button"/> </selector>
Anim / button_elevation.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_pressed="true"> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="translationZ" android:valueFrom="2dip" android:valueTo="4dip" android:valueType="floatType" /> </item> <item> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="translationZ" android:valueFrom="4dip" android:valueTo="2dip" android:valueType="floatType" /> </item> </selector>
Si usted tiene un botón en forma rectangular entonces usted está hecho aquí. Pero si usted tiene botón circular o de forma oval, entonces sería como,
Para quitar las esquinas del botón circular o de forma ovalada, añada este código a su archivo .java
.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ........... int buttonSize = (int) getResources().getDimension(R.dimen.button_size); Outline circularOutline = new Outline(); circularOutline.setOval(0, 0, buttonSize, buttonSize); for (int i = 0; i < MAX_BUTTONS; i++) { Button button = ...... ....... button.setOutline(circularOutline); ........ } ..... }
¡La forma angular quitada !! Ahora, se vería exactamente como
Puede utilizar imágenes de 9 parches, con sombras. Ponga la imagen en drawable – xxhdpi y establézcala como fondo en el botón u otro elemento.
android:background="@drawable/shadow_bg"
O puede utilizar CardView como un botón y utilizar su CardView como un botón y su método setCardElevation. Combinado con eventos táctiles y ValueAnimator, podría obtener una bonita sombra animada debajo del botón.
- Appcompat falta en la carpeta sdk
- Android publicar en la pared de Facebook, stream.publish roto desde hace unos días