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


Android L FAB Botón sombra

En las directrices de diseño de material, Google presentó un nuevo estilo de botón , el botón FAB . Encontré instrucciones de cómo hacerlo, pero tengo problemas para añadir la sombra. ¿Cómo se puede lograr esto?

  • Hipo en transiciones de actividad con elementos compartidos
  • Android: Theme.Material.Light requiere el nivel API 21 (el min actual es 8)
  • Spinner funcionando mal en Lollipop
  • Acceso de Android para Android 5 dispositivos Samsung
  • ¿Cómo evito que mi aplicación entre en optimización en dispositivos Samsung
  • Adición de un botón de reproducción de terminación mediante Android L Notification.MediaStyle
  • Indicador de cajón en lollipop play store
  • Cambiar el color de fondo de CardView mediante programación
  • Cajón de navegación de estilo de diseño de Android 5.0 para KitKat
  • Error al recuperar el padre del elemento: No se encontró ningún recurso que coincida con el nombre dado 'android: Theme.Material.Light'
  • Android Lollipop, añadir menú emergente del título en la barra de herramientas
  • UiAutomator volcado para Lollipop Lost WebView Ver jerarquía
  • 3 Solutions collect form web for “Android L FAB Botón sombra”

    Compruebe hacia fuera el "activity.java", allí es probablemente el código que usted necesita.

    Hice el Fab – Button como este:

    Layout.xml

      <Button style="?android:attr/buttonStyleSmall" android:layout_width="56dp" android:layout_height="56dp" android:text="+" android:textSize="40sp" android:background="@drawable/ripple" android:id="@+id/fabbutton" android:layout_margin="@dimen/activity_horizontal_margin" android:elevation="3dp" android:paddingBottom="16dp" android:fontFamily="sans-serif-light" android:layout_alignParentEnd="true" android:layout_gravity="right|bottom" /> 

    Ripple.xml

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

    Fab.xml

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

    Actividad.java

      import android.graphics.Outline; ... Button fab = (Button) rootView.findViewById(R.id.fabbutton); Outline mOutlineCircle; int shapeSize = getResources().getDimensionPixelSize(R.dimen.shape_size); mOutlineCircle = new Outline(); mOutlineCircle.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 2); fab.setOutline(mOutlineCircle); fab.setClipToOutline(true); 

    Este código se mostrará como error en android studio v0.8.1, por lo que otros android componentes l. Se arreglará en la próxima versión.

    Resultado:

    Introduzca aquí la descripción de la imagen

    Puede utilizar un botón:

     <ImageButton android:id="@+id/fab" android:background="@drawable/ripple" android:stateListAnimator="@anim/anim" android:src="@drawable/ic_action_add" android:elevation="4dp" /> 

    Donde ic_action_add es tu icono.

    Drawable / ripple.xml es:

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

    Anim / anim.xml es:

     <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="@dimen/button_elevation" android:valueTo="@dimen/button_press_elevation" android:valueType="floatType" /> </item> <item> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="translationZ" android:valueFrom="@dimen/button_press_elevation" android:valueTo="@dimen/button_elevation" android:valueType="floatType" /> </item> </selector> 

    Dimens.xml es

     <resources> <dimen name="fab_size">56dp</dimen> <dimen name="button_elevation">2dp</dimen> <dimen name="button_press_elevation">4dp</dimen> </resources> 

    Con el atributo de elevación , debe establecer el esquema mediante código:

     public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layoutfab); //Outline Button fab = (Button) findViewById(R.id.fab) ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { // Or read size directly from the view's width/height int size = getResources().getDimensionPixelSize(R.dimen.fab_size); outline.setOval(0, 0, size, size); } }; fab.setOutlineProvider(viewOutlineProvider); } } 

    El problema con la sombra circular puede ser fácilmente resuelto sin ningún truco con el Outline : basta con añadir estas propiedades al botón en el diseño XML (además del fondo personalizado):

     android:elevation="5dp" android:stateListAnimator="@null" 

    Aunque Android Studio puede mostrar un error en la vista previa de diseño, funciona bien cuando se inicia en un dispositivo.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.