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
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.
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);`
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é