web-dev-qa-db-fra.com

Est-il possible de changer l'image du bouton de connexion Facebook dans Facebook Android SDK3?

Facebook Android sdk a un com.facebook.widget.LoginButton

Je veux mettre ma propre image pour le bouton de connexion. C'est possible ?

Jusqu'à présent, j'ai essayé d'ajouter Android:src="@drawable/facebook" au fichier de mise en page en tant qu'attribut à l'élément bouton sans succès

34
Michael

J'ai fini par remplacer le texte par une chaîne vide, puis par définir le setBackgroundResource du bouton à mon image (je n'ai pas eu besoin de la fonctionnalité de texte de connexion/déconnexion dynamique)

<com.facebook.widget.LoginButton
        xmlns:fb="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/login_button"
        Android:layout_width="249dp"
        Android:layout_height="45dp"
        Android:layout_above="@+id/textView1"
        Android:layout_centerHorizontal="true"
        Android:layout_gravity="center_horizontal"
        Android:layout_marginBottom="30dp"
        Android:layout_marginTop="30dp"
        Android:contentDescription="@string/login_desc"
        Android:scaleType="centerInside"
        fb:login_text=""
        fb:logout_text="" />

Et dans le code, j'ai défini la ressource d'arrière-plan:

final LoginButton button = (LoginButton) findViewById(R.id.login_button);
button.setBackgroundResource(R.drawable.facebook);

Une sorte de solution de contournement, mais je préférais cela à la modification du code du SDK Facebook (bien que ce soit très simple également) et je m'inquiète de la mise à jour chaque fois que je mets à jour leur version.

78
Michael

oui si vous voulez changer le texte et l'image tous les deux alors écrivez le code ci-dessous.

authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setBackgroundResource(R.drawable.icon);
authButton.setText("Login");
authButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);`
10
Heena M. Patel

Autrement

loginButton = (LoginButton) findViewById(R.id.fb_login_button);
loginButton.setVisibility(View.GONE);




ImageView ivFbCustomButton = (ImageView) findViewById(R.id.iv_fb_custom_button);
ivFbCustomButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        com.facebook.login.widget.LoginButton btn = new com.facebook.login.widget.LoginButton(FacebookActivity.this);
        btn.performClick();
    }
});

Remarque:

Vous devez écrire le code de deux boutons dans un fichier XML. L'un est pour le bouton facebook par défaut (nous le cachons à l'étape initiale). Le second est pour le bouton personnalisé

2
Bahu