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


Cómo crear un tamaño personalizado de FloatingActionButton

FloatingActionButton por defecto tiene dos tamaños (normal y mini). Necesito otro (más grande que lo normal).

app:fabSize parámetro app:fabSize de xml se convirtió private int mSize; Variable en la clase FloatingActionButton . El tamaño real será determinado por esta función:

 final int getSizeDimension() { switch(this.mSize) { case 0: default: return this.getResources().getDimensionPixelSize(dimen.fab_size_normal); case 1: return this.getResources().getDimensionPixelSize(dimen.fab_size_mini); } } 

Debido a que declaró como final no puedo extenderlo. ¿Algunas ideas? ¿Puedo redefinir el recurso dimen.fab_size_mini en mi aplicación?

  • ¿Qué límites hay en el número de recursos de Android?
  • ¿Qué significa exactamente usar el contexto de aplicación?
  • ¿Hay una manera de obtener el código fuente de un archivo APK?
  • Recursos de importación android de proyecto de biblioteca
  • La razón de los activos y recursos crudos en Android
  • Acceso al recurso definido en el tema y attrs.xml android
  • R.string; Obtener cadena de nombre de clave dinámica
  • Android: conversión entre cadenas, SpannedStrings y Spannablestrings
  • 2 Solutions collect form web for “Cómo crear un tamaño personalizado de FloatingActionButton”

    Porque no uso FAB de mini tamaño, redefiní este tamaño.

    Dimens.xml:

     <resources> <dimen name="design_fab_size_mini">100dp</dimen> </resources> 

    Layout.xml (el primer FAB será mayor que el segundo):

      <android.support.design.widget.FloatingActionButton android:id="@+id/addPhoto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" app:fabSize="mini" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="@dimen/fab_margin_right" android:src="@drawable/ic_photo_camera_white_24dp" /> <android.support.design.widget.FloatingActionButton android:id="@+id/addPicture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_alignParentBottom="true" android:layout_toLeftOf="@id/addPhoto" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="0dp" android:src="@drawable/ic_photo_white_24dp" /> 

    Puede definir su FloatingActionButton personalizado de esta manera

     public class CustomSizeFloatingActionButton extends FloatingActionButton { public CustomSizeFloatingActionButton(Context context) { super(context); } public CustomSizeFloatingActionButton(Context context, AttributeSet attrs) { super(context, attrs); } public CustomSizeFloatingActionButton(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = getMeasuredWidth(); int height = getMeasuredHeight(); setMeasuredDimension((int) (width * 1.5f), (int) (height * 1.5f)); } } 

    En vez de 1.5f usted puede definir fijar su multiplicador.
    De esta manera, no es necesario redefinir los recursos que pueden afectar a otras partes de la aplicación.

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