J'ai utilisé cette bibliothèque https://github.com/futuresimple/Android-floating-action-button . Comment puis-je changer l'image du bouton principal? Je veux changer l'image du bouton juste après avoir sélectionné l'un des plus petits boutons.
De https://developer.Android.com/reference/Android/support/design/widget/FloatingActionButton.html
Lorsque cette classe descend de ImageView, vous pouvez contrôler l’icône qui est affiché via setImageDrawable (Drawable).
Ou vous pouvez utiliser setImageResource ():
fab.setImageResource(R.drawable.ic_shopping_cart_white);
vous pouvez l'utiliser dans votre fichier .XML:
Android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color
utilisez ceci dans le code:
mFloatingActionButton.setImageResource(R.drawable/icon2);
Ce que j'utilise comme suit,
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));
J'espère que ceci vous aidera
J'ai fait face au même problème récemment, j'ai essayé avec l'option suivante
fab:fab_icon="@drawable/icon"
et
Android:src="@drawable/icon" // change backgroung icon
même essayé par programme
fab_menu_btn.setImageResource();
Rien n'a fonctionné.
Solution: remplacer le fichier build.gradle dans l'application
compile 'com.getbase:floatingactionbutton:1.10.0'
à
compile 'com.github.toanvc:floatingactionmenu:0.8.9'
Dans un fichier .xml, utilisez:
<toan.Android.floatingactionmenu.FloatingActionsMenu
</toan.Android.floatingactionmenu.FloatingActionsMenu>
En activité Fichier:
floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon));
Merci
J'ai eu le même problème et j'ai réussi à créer ma propre solution. Peut-être que d'autres trouvent cela aussi utile. J'ai posté la réponse complète à une autre question ( Comment définir une icône pour getbase FloatingActionsMenu ) mais cette partie publiée ici est pertinente pour la question de la modification dynamique de l'image/du bouton du menu principal lorsqu'un des sous-boutons est choisi. Dans ce cas, vous devez combiner la réponse de la "question liée" avec la réponse ci-dessous.
Afin de changer l'icône sur le bouton de menu lorsque vous choisissez un floatingActionButton, il peut être implémenté comme suit:
Créer un bouton de menu dans un fichier xml, créer un ou plusieurs boutons flottants sur un fichier .Java (par programme), définir un bouton de menu (bouton de couleur, bouton de couleur enfoncé et image). Ensuite, ajoutez simplement tous les boutons au bouton de menu. Vous pouvez également désactiver l'animation du bouton de menu en commentant simplement le code dans la classe FloatingActionsMenu
.
Puis chaque fois que vous créez un bouton, échantillonnez:
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;
}
});
Voir la réponse affichée sur le lien pour savoir comment configurer les classes et définir le bouton de menu et le (s) bouton (s) flottant (s).
Donc, la partie importante à noter ici est:
menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);
Cette méthode vous devez ajouter dans la classe FloatingActionsMenu
. Vous appelez simplement la méthode après chaque objet floatingActionButton pour lequel vous souhaitez mettre à jour l'image.
Plus d'informations que vous pouvez trouver sur le lien que j'ai posté. Ainsi, lorsque vous cliquez sur l’un des boutons floatingAction.
Pour le moment, la couleur sur le bouton de menu ne se met pas à jour correctement, mais je travaille dessus si je trouve une solution, je mettrai également à jour la réponse ici. J'espère que cela aide, codage heureux.
Malheureusement, avec cette bibliothèque, vous ne pouvez pas changer l'icône du menu (voir les problèmes de cette bibliothèque pour plus d'informations)
C'est pourquoi j'ai laissé tomber cette bibliothèque pour en utiliser une plus flexible! C'est à l'origine une fourchette mais c'est maintenant plus avancé;)
Voici le lien
Prendre plaisir!