34

Facebook Android sdk 有一个com.facebook.widget.LoginButton

我想为登录按钮放置我自己的图像。是否可以 ?

到目前为止,我已经尝试将android:src="@drawable/facebook"布局文件添加为按钮元素的属性,但没有成功

4

4 回答 4

78

我最终将文本覆盖为空字符串,然后将setBackgroundResource按钮定义为我的图像(不需要动态登录/注销文本功能)

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

在代码中我定义了背景资源:

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

一种解决方法,但我更喜欢更改 Facebook SDK 代码(尽管它也非常简单),并且每次更新他们的版本时都会担心更新。

于 2013-05-13T21:42:05.923 回答
10

是的,如果您想同时更改文本和图像,请编写以下代码。

authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setBackgroundResource(R.drawable.icon);
authButton.setText("Login");
authButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);`
于 2014-10-16T12:45:03.830 回答
2

其他方式

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

笔记:

您必须在 XML 文件中编写两个按钮的代码。一个是默认的 facebook 按钮(我们在初始步骤中隐藏它)。第二个是自定义按钮

于 2016-12-17T11:15:05.270 回答
0

创建一个名为 com_facebook_button_icon.xml 的 drawable,在其中添加任何内容 FB 登录按钮将覆盖,因为它用作 drawableleft。

例如:

<vector
android:height="25dp"
android:viewportHeight="1365.3333"
android:viewportWidth="1365.3333"
android:width="25dp"
xmlns:android="http://schemas.android.com/apk/res/android"
android:tintMode="multiply"
android:tint="@color/com_facebook_button_text_color"
>
<path
    android:fillAlpha="1"
    android:fillColor="#FFFFFF"
    android:fillType="nonZero"
    android:pathData="m1365.33,682.67c0,-377.03 -305.64,-682.67 -682.67,-682.67C305.64,-0 0,
        305.64 0,682.67 0,1023.41 249.64,1305.83 576,1357.04L576,880L402.67,880l0,
        -197.33l173.33,-0l0,-150.4c0,-171.09 101.92,-265.6 257.85,-265.6 74.69,-0 152.81,
        13.33 152.81,13.33L986.67,448L900.58,448C815.78,448 789.33,500.62 789.33,
        554.61L789.33,682.67L978.67,682.67L948.4,880L789.33,880L789.33,1357.04C1115.69,
        1305.83 1365.33,1023.41 1365.33,682.67"
    android:strokeColor="#00000000"
    />
于 2020-06-14T14:59:19.370 回答