簡體   English   中英

自定義Facebook登錄按鈕Android

[英]Custom Facebook Login Button Android

在創建Facebook登錄按鈕時,我遵循了Facebook文檔,此后登錄工作正常,但是我想為此自定義按鈕,因為我嘗試了很多事情但沒有任何效果。

1)首先我嘗試從xml這樣的:

<com.facebook.login.widget.LoginButton
        android:id="@+id/authButton"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_marginRight="30dp"
        android:layout_marginLeft="30dp"
        android:padding="10dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:textColor="@color/white"
        android:background="@drawable/fbbutton_state"
        android:textSize="15sp"
        android:text="Facebook"
        />

2)創建自定義類並擴展了LoginButton。

public class CustomLoginButton extends LoginButton {

public CustomLoginButton(Context context, AttributeSet attrs) {
    super(context, attrs)
     this.setBackgroundColor(R.color.com_facebook_likeboxcountview_border_color);
    this.setCompoundDrawablesWithIntrinsicBounds(R.drawable.my_own_icon, 0, 0, 0);
    this.setText("Facebook");
}

}

此圖標的顏色已更改,但仍為文本。

3)最后我在facebook sdk中嘗試了一下,我改變了字符串和樣式,它必須工作但沒有結果

<string name="com_facebook_loginview_log_in_button">Log in via Facebook</string> 


<style name="com_facebook_loginview_default_style" parent="@android:style/Widget.Button">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">45dp</item>
        <item name="android:background">@drawable/com_facebook_button_blue</item>
        <item name="android:textColor">@color/com_facebook_loginview_text_color</item>
        <item name="android:textSize">@dimen/com_facebook_loginview_text_size</item>
        <item name="android:textStyle">bold</item>
        <item name="android:paddingLeft">@dimen/com_facebook_loginview_padding_left</item>
        <item name="android:gravity">center</item>
    </style>

我在登錄按鈕和常用的SO登錄按鈕中發現的一個區別是,它們分別是: <com.facebook.widget.LoginButton和我的這樣的: <com.facebook.login.widget.LoginButton但我認為Facebook升級了此功能。

在您的XML中:

給出com.facebook.login.widget.LoginButton 0的寬度和高度,放置您的自定義按鈕,並為其提供ID和所有內容,

現在轉到您的課程,獲取自定義按鈕的單擊偵聽器,然后放置此行。

authButton.performClick();

創建自己的簡單Button,然后使用LoginManager進行授權

ArrayList<String> perms = new ArrayList<>();

perms.add("publish_actions");
LoginManager.getInstance().logInWithPublishPermissions(this, perms);

我很久以前發現的這種解決方法,在您的活動中添加以下代碼行:

btnFb.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
btnFb.setBackgroundResource(R.drawable.fb_drawable);

並且不要忘記按如下所示在XML中重置默認的Facebook按鈕文本:

facebook:com_facebook_logout_text=""
facebook:com_facebook_login_text=""

我希望您正在使用Facebook SDK 4.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM