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?

  • Cómo diseñar el DrawerArrowToggle de Android appcompat v7 21 library
  • Adb shell dumpsys iphonesubinfo no funciona desde Android 5.0 Lollipop
  • ¿Cómo usar StateListAnimator?
  • Material Android L Interpolador de transición de imagen
  • Cómo cambiar el color de la barra de navegación del sistema
  • Barra de herramientas y ActionBar contextual con AppCompat-v7
  • WifiConfiguration habilita la red en Lollipop
  • Resumen: Tome una foto utilizando Intención de la cámara y muestre la foto con la orientación correcta (funciona con todos los dispositivos)
  • Android Material botón circular
  • Dialogo de fechapicker sin visualización de calendario en lollipop ?
  • Hacer Notificación Icono Grande Ronda
  • Manejo de botones de medios en Android 5.0 Lollipop
  • 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.