android - icon - floating action button onclick
¿Cómo cambiar la forma del botón de acción flotante(FAB) en Android? (3)
El FloatingActionButton proporcionado por las bibliotecas de soporte no se puede ampliar ya que los métodos que deberían reemplazarse se establecen en privado. Material Components (que es el reemplazo oficial de AndroidX para la biblioteca de soporte) tiene Shape Theming en la roadmap de roadmap para ~ octubre-diciembre, que le permitirá hacerlo de manera oficial y sencilla (sin tener que ampliar la vista).
Pero aún no está disponible, por lo que entretanto, customFloatingActionButton by robertlevonyan, y con algunas modificaciones leves, le permite usar su propia forma personalizada. El código fuente está disponible here .
Para agregarlo a su proyecto con Gradle, necesitará usar jitpack . Puedes añadirlo así:
allprojects {
repositories {
...
maven { url ''https://jitpack.io'' }
}
}
Entonces pon en práctica mi horquilla:
implementation ''com.github.JediBurrell:customFloatingActionButton:-SNAPSHOT''
A continuación, crearemos la forma, la que usted creó debería funcionar bien.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:topLeftRadius="@dimen/fab_circle_radius"
android:topRightRadius="@dimen/fab_circle_radius"
android:bottomRightRadius="@dimen/fab_circle_radius" />
<solid android:color="@color/colorAccent" />
</shape>
Luego, finalmente, agréguelo a su diseño (más opciones de FAB se enumeran en el repositorio de Github):
<com.jediburrell.customfab.FloatingActionButton
android:id="@+id/floating_action_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
app:fabType="custom"
app:fabShape="@drawable/fab_teardrop"
app:fabIcon="@drawable/ic_add_24dp"
app:fabColor="@color/red" />
Y aquí está cómo se ve:
En nuestra aplicación de Android necesitamos crear un botón de acción flotante que no sea el círculo predeterminado sino un cuadrado con tres esquinas redondeadas. La fab se ve como en la imagen de abajo:
Me las arreglé para crear tal formulario pero no sé cómo aplicarlo a mi fab, o si es posible. El archivo xml para la forma se ve así:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/red" />
<corners
android:topLeftRadius="90dp"
android:topRightRadius="90dp"
android:bottomRightRadius="90dp"/>
</shape>
Traté de cambiar la forma con
android:src="@drawable/my_shape"
pero esto cambia solo el icono dentro de mi botón. Creo que necesito extender FloatingActionButton pero no tengo idea de cómo.
¿Hay alguna manera de cambiar la forma de la fab? Si alguien ya lo ha conseguido me gustaría ver una muestra.
En tu pregunta, dijiste que intentaste ajustar android:src
, que obviamente es el enfoque equivocado porque se trata del contenido de FloatingActionButton
''s.
El parámetro de android:background
cambiará tu forma. Tenga en cuenta que se supone que es redondo .
Creo que esta pregunta simplemente no es un duplicate porque esa duplicate solo se refiere al color.
Necesitará usar esto en su archivo XML:
android:background="@drawable/my_shape"
Lo que estás buscando es cambiar el fondo de tu botón.
android:background="@drawable/my_shape"