2

我正在使用Android Sdk 4.0,并成功实现了与Facebook的登录。我想要我的自定义图像登录按钮,但要使用默认登录按钮的现有功能。我如何实现它?如何在Android的Facebook登录按钮上添加自定义文本并设置自定义图像?

我在这里添加示例代码。

按钮:

<com.facebook.login.widget.LoginButton 
    android:id="@+id/fb_login_button" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_horizontal" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true"/> 

设置与 loginButton.setText文本( “连接Facebook”)没有工作过。

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    loginButton = (LoginButton) view.findViewById(R.id.login_button); 
    loginButton.setReadPermissions("email", "user_likes", "user_friends"); 
    loginButton.setFragment(this); 
    loginButton.setText("CONNECT WITH FACEBOOK"); 

    loginButton.registerCallback(callbackManager, new FacebookCallback <LoginResult>() {@Override 
    public void onSuccess(LoginResult loginResult) { 

    } 

    @Override 
    public void onCancel() { 

    } 

    @Override 
    public void onError(FacebookException exception) { 

    } 
}); 
} 

回答

2

如果在XML布局做到这一点,您可以更改文本,你可以被拉伸设置它:

<com.facebook.login.widget.LoginButton 
    android:id="@+id/fb_login_button" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_horizontal" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:text="WHATEVER YOU WANT IT TO BE" 
    android:background="@drawable/btn_facebook"/> 

然后,你可以创建一个可绘制的,做任何你想要的。例如:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <shape> 
      <solid android:color="#4e69a2"/> 
      <stroke android:width="3dip" 
       android:color="#4e69a2" /> 
      <padding android:left="0dip" 
       android:top="0dip" 
       android:right="0dip" 
       android:bottom="0dip" /> 
     </shape> 
    </item> 

    <item> 
     <shape> 
      <solid android:color="#3b5998"/> 
      <stroke android:width="3dip" 
       android:color="#3b5998" /> 
      <padding android:left="0dip" 
       android:top="0dip" 
       android:right="0dip" 
       android:bottom="0dip" /> 
     </shape> 
    </item> 
</selector> 
+1

你好,我想你的解决方案。它在android studio xml预览中显示“与FACEBOOK连接”,但是当我运行该项目时,默认显示“使用Facebook登录”。 –

0
<com.facebook.login.widget.LoginButton 
xmlns:fb="http://schemas.android.com/apk/res-auto" 
fb:com_facebook_login_text="Your Text" 
+0

你应该添加一些文字来澄清你的答案。只是一个代码示例不是一个特别好的答案 – Raniz

+1

请添加来评论,以便任何人都可以理解你的代码。谢谢。 –

+0

将xmlns:fb =“http://schemas.android.com/apk/res-auto” fb:com_facebook_login_text =“您的文本”添加到您的XML中,它将起作用 –