programacion - Cambiar imagen Botón de acción flotante Android
manual de android en pdf (7)
Utilicé esta biblioteca https://github.com/futuresimple/android-floating-action-button . ¿Cómo puedo cambiar la imagen del botón principal? Quiero cambiar la imagen del botón justo después de seleccionar uno de los botones más pequeños.
Añadir la propiedad
fab:fab_icon="@drawable/fab_expand"
en el xml donde inicializó el menú de acciones flotantes.
Desafortunadamente, con esta biblioteca no puede cambiar el ícono desde el menú (vea los problemas de esta biblioteca en más información)
¡Es por eso que dejé esta biblioteca para usar una manera más flexible! Originalmente es un tenedor pero ahora es más avanzado;)
Aquí está el link
¡Disfrutar!
Desde https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html
A medida que esta clase desciende de ImageView, puede controlar el icono que se muestra mediante setImageDrawable (Drawable).
O puedes usar setImageResource ():
fab.setImageResource(R.drawable.ic_shopping_cart_white);
Lo que estoy usando de la siguiente manera
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_btn);
// State 1 -on
fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_on));
// State 2 - off
fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_off));
Espero que esto te ayudará
Me enfrenté al mismo problema recientemente, probé con la siguiente opción
fab:fab_icon="@drawable/icon"
y
android:src="@drawable/icon" // change backgroung icon
incluso intentado programáticamente
fab_menu_btn.setImageResource();
Nada funcionó.
Solución: en el archivo build.gradle de la aplicación reemplazar
compile ''com.getbase:floatingactionbutton:1.10.0''
a
compile ''com.github.toanvc:floatingactionmenu:0.8.9''
En el archivo .xml usar:
<toan.android.floatingactionmenu.FloatingActionsMenu
</toan.android.floatingactionmenu.FloatingActionsMenu>
En el archivo de actividad:
floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon));
Gracias
Puedes usar esto en tu .XML:
android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color
Usa esto en el código:
mFloatingActionButton.setImageResource(R.drawable/icon2);
Tuve el mismo problema y logré crear mi propia solución. Tal vez algún otro lo encuentre también útil. He publicado la respuesta completa a otra pregunta ( Cómo configurar un ícono para obtener el FloatActionsMenu de getbase ) pero esta parte publicada aquí es relevante para la pregunta al cambiar dinámicamente la imagen / imagen del botón del menú principal cuando se elige uno de los botones secundarios. En este caso, necesita o combinar la respuesta de la "pregunta vinculada" y la respuesta a continuación.
Para cambiar el ícono en el botón de menú cuando elige un botón de acción flotante, se puede implementar de la siguiente manera:
Cree un botón de menú en un archivo xml, cree uno o más botones flotantes en el archivo .java (programáticamente) configure el botón de menú (botón de color, botón de color presionado e imagen). Luego simplemente agregue todos los botones al botón de menú. También puede desactivar la animación del botón de menú simplemente comentando el código en la clase FloatingActionsMenu
.
Luego, cada vez que crees un botón, muestra:
final FloatingActionButton actionA = new FloatingActionButton(getBaseContext());
actionA.setTitle("Familie");
actionA.setIcon(R.drawable.world_map);
actionA.setSize(FloatingActionButton.SIZE_MINI);
actionA.setColorNormalResId(R.color.red);
actionA.setColorPressedResId(R.color.black_semi_transparent);
actionA.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);
Toast.makeText(MainMapView.this, "Action Description", Toast.LENGTH_SHORT).show();
((FloatingActionsMenu) findViewById(R.id.multiple_actions)).collapse();
return;
}
});
Vea la respuesta publicada en el enlace sobre cómo configurar las clases y defina el botón de menú y los botones flotantes.
Así que la parte importante a notar aquí es:
menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);
Este método debe agregar en la clase FloatingActionsMenu
. Simplemente llame al método después de cada acción flotante que desee para actualizar la imagen.
Más información se puede encontrar en el enlace que he publicado. Así que cuando haces clic en uno de los botones de acción flotantes.
Por el momento, el color del botón de menú no se actualiza correctamente, pero estoy trabajando en ello. Si encuentro una solución, también actualizaré la respuesta aquí. Espero que esto ayude, feliz codificación.