2013-05-11 15 views

Odpowiedz

78

skończyło się nadrzędnymi tekst będzie pusty ciąg znaków, a następnie zdefiniowanie setBackgroundResource przycisku do mojego obraz (nie potrzeba zalogowania/wylogowania funkcjonalność dynamicznego tekstu)

<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="" /> 

A ja w kodzie zdefiniowano zasobu tła:

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

Sposób obejścia problemu, ale wolałem to od zmiany kodu SDK Facebooka (chociaż jest to bardzo proste) i martwić się o aktualizację za każdym razem, gdy aktualizuję ich wersję.

+1

Po prostu ciekawy: gdzie znalazłeś dokumentację/pomoc dotyczącą 'fb: login_text' i takich atrybutów XML? Dokładnie tego szukałem, ale nie mam pojęcia, jak ludzie się na to natknęli. –

+3

Facebook sdk jest open source. Sprawdź jego res/values ​​/ attrs.xml –

+3

Nadal wyświetla ikonę "f" Facebooka, jak to usunąć? – SkyWalker

9

Tak, jeśli chcesz zmienić tekst i obraz, a następnie wpisz poniższy kod.

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

Innym sposobem

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

Uwaga:

Musisz napisać kod dla dwóch przycisków w pliku XML. Jeden z nich to domyślny przycisk na facebooku (ukrywamy go w początkowej fazie). Drugi jest dla niestandardowego przycisku

Powiązane problemy