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.
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);
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);
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 à
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!
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
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.
ajouter le bien
fab:fab_icon="@drawable/fab_expand"
dans le xml où vous avez initialisé le menu d'action flottant.