studio programacion herramientas fundamentos con avanzado aplicaciones android floating-action-button

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!



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.