Android facebook sdk 4.1.0将图像设置为登录按钮

时间:2015-10-30 12:45:46

标签: android facebook-login

我想将自定义图片设置为facebook登录按钮。但是当我将图像设置为登录按钮时,它会显示facebook的标识。

我的xml代码如下,

<com.facebook.login.widget.LoginButton
            android:id="@+id/btnFacebookLogin"
            style="@style/FacebookLoginButton"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginRight="5dp"
            android:gravity="center_vertical"
            android:padding="10dp"
            fb:com_facebook_login_text=""
            fb:com_facebook_logout_text=""
            android:scaleType="centerInside" />

式,

<style name="FacebookLoginButton">
    <item name="android:layout_height">42dp</item>
    <item name="android:paddingTop">10sp</item>
    <item name="android:paddingBottom">10sp</item>
</style>

但没有正确设置。我想只设置这个图像, enter image description here

请帮我设置此图片。谢谢。

3 个答案:

答案 0 :(得分:1)

您无法通过XML将图像设置为Facebook登录。

您需要以编程方式设置它。

        btnFacebookLogin.setBackgroundResource(R.drawable.fb);
        btnFacebookLogin.setText("");
        btnFacebookLogin.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
XML中的

  <com.facebook.login.widget.LoginButton
                    xmlns:fb="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/btnFacebookLogin"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"                       
                    android:paddingBottom="20dp"
                    android:paddingTop="20dp"
                    android:scaleType="centerInside"
                    fb:com_facebook_login_text=""
                    fb:com_facebook_logout_text="" />

答案 1 :(得分:0)

您需要根据需要设置按钮的样式

<style name="FacebookLoginButton">
    <item name="android:textSize">@dimen/smallTxtSize</item>
    <item name="android:background">@drawable/facebook_signin_btn</item>
    <item name="android:layout_marginTop">10dp</item>
    <item name="android:layout_marginBottom">10dp</item>
    <item name="android:layout_gravity">center_horizontal</item>
</style>
你的xml中的

<com.facebook.login.widget.LoginButton
            android:id="@+id/btnFacebookLogin"
            style="@style/FacebookLoginButton"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginRight="5dp"
            android:gravity="center_vertical"
            android:padding="10dp"
            fb:com_facebook_login_text=""
            fb:com_facebook_logout_text=""
            android:scaleType="centerInside" />

或者以编程方式提供

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

答案 2 :(得分:0)

要从原始登录按钮中删除小 f 图标,请将其添加到您的java LoginButton 实例中:

mButtonLogin.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);

通过 paddingLeft paddingRight paddingBottom 调整宽度高度 paddingTop

xmlns:facebook="http://schemas.android.com/apk/res-auto"
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/image"
        android:paddingBottom="16dp"
        android:paddingLeft="96dp"
        android:paddingRight="96dp"
        android:paddingTop="16dp"
        facebook:com_facebook_login_text=""
        facebook:com_facebook_logout_text="" />