Facebook Android sdk 有一个com.facebook.widget.LoginButton
我想为登录按钮放置我自己的图像。是否可以 ?
到目前为止,我已经尝试将android:src="@drawable/facebook"
布局文件添加为按钮元素的属性,但没有成功
Facebook Android sdk 有一个com.facebook.widget.LoginButton
我想为登录按钮放置我自己的图像。是否可以 ?
到目前为止,我已经尝试将android:src="@drawable/facebook"
布局文件添加为按钮元素的属性,但没有成功
我最终将文本覆盖为空字符串,然后将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 代码(尽管它也非常简单),并且每次更新他们的版本时都会担心更新。
是的,如果您想同时更改文本和图像,请编写以下代码。
authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setBackgroundResource(R.drawable.icon);
authButton.setText("Login");
authButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);`
其他方式
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 按钮(我们在初始步骤中隐藏它)。第二个是自定义按钮
创建一个名为 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"
/>