Changer l'image Flottante sur le Bouton d'Action Android

j'ai utilisé cette bibliothèque https://github.com/futuresimple/android-floating-action-button . Comment changer l'image du bouton principal? Je veux changer l'image du bouton juste après avoir sélectionné un des plus petits boutons.

30
demandé sur pippo10 2015-05-26 13:20:32

7 réponses

de https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html

comme cette classe descend D'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);
39
répondu Alex Bravo 2015-08-18 20:33:46

vous pouvez l'utiliser dans vos .XML:

android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color

utilisez ce code:

 mFloatingActionButton.setImageResource(R.drawable/icon2);
18
répondu AndroidDev 2016-07-21 15:41:20

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));

Espère que cela va vous aider à

3
répondu Umanda 2016-10-31 08:34:43

malheureusement, avec cette bibliothèque, vous ne pouvez pas changer l'icône du menu (Voir les numéros de cette bibliothèque à partir de plus d'informations)

C'est pourquoi j'ai laissé tomber cette bibliothèque à utiliser un moyen plus souple! Il est à l'origine d'une fourche, mais il est maintenant plus avancé ;)

voici le lien

Profitez-en!

0
répondu ptitvinou 2015-09-22 06:53:33

j'ai fait face à la même question récemment, j'ai essayé de suivre l'option

  fab:fab_icon="@drawable/icon"

et

 android:src="@drawable/icon" // change backgroung icon

même essayé programmatically

 fab_menu_btn.setImageResource();

rien n'a fonctionné.

Solution: dans la construction de l'application.dossier gradle remplacer

  compile 'com.getbase:floatingactionbutton:1.10.0'

à

compile 'com.github.toanvc:floatingactionmenu:0.8.9'

In .utilisation du fichier xml:

           <toan.android.floatingactionmenu.FloatingActionsMenu
          </toan.android.floatingactionmenu.FloatingActionsMenu>

dans le fichier d'activité:

      floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon));

Merci

0
répondu suprita 2017-11-14 17:10:59

j'ai eu le même problème et j'ai réussi à créer ma propre solution. Peut-être quelque chose fonde elle aussi utiles. J'ai posté la réponse complète à une autre question ( comment mettre une icône à Getbase FloatingActionsMenu ) mais cette partie postée ici est pertinente à la question en changeant dynamiquement le bouton principal Image/image lorsque l'un des sous-boutons est choisi. Dans ce cas, vous devez combiner la réponse de la "question liée" et la réponse ci-dessous.

afin de changer l'icône sur le bouton menu lorsque vous choisissez un bouton floatingActionButton, il peut être mis en œuvre comme ceci:

créer bouton menu dans le fichier xml, créer bouton(S) flottant (s) sur .fichier java (par programmation) réglez le bouton de menu (bouton de couleur, la couleur de la touche enfoncée et image). Ensuite, il suffit d'ajouter tous les boutons au bouton menu. Vous pouvez également désactiver l'animation du bouton menu en commentant simplement le code de la classe FloatingActionsMenu .

puis chaque fois que vous créez un bouton, échantillon:

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 sur comment configurer les classes et définir le bouton 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 que vous devez ajouter dans la classe FloatingActionsMenu . Il vous suffit d'appeler la méthode après chaque bouton floatingActionButton que vous voulez 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 floatingActionButton (s).

pour le moment la couleur sur le bouton menu n'est pas mise à jour correctement, mais je travaille dessus si je trouve une solution je mettrai à jour la réponse ici aussi. Espérons que cela aide, heureux de codage.

0
répondu Thanos 2018-06-10 13:32:16

ajouter le bien

fab:fab_icon="@drawable/fab_expand"

dans le xml où vous avez initialisé le menu d'action flottant.

-1
répondu Ashish Rawat 2015-09-22 06:54:34