[英]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.