我想自定义我的Facebook和Google+登录按钮,有人可以帮我吗?
这些是我的布局代码
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="fill_parent"
android:layout_height="45dp"
android:layout_weight="1"
android:text=""
android:layout_gravity="center"
android:padding="0dp" />
<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center"
android:padding="0dp" />
答案 0 :(得分:1)
您应该使用按钮,而不是使用默认的UI组件。做你想要的任何设计。单击按钮,您必须编写登录/注册代码或任何您想要的代码。
这仅是示例。
<Button
android:id="@+id/loginButtonFacebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_blue_button"
android:text="@string/facebook_txt" />
<Button
android:id="@+id/loginButtonGoogle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_button"
android:text="@string/google_txt" />
Facebook的: 在您的活动中执行以下操作:
public class LoginActivity extends FragmentActivity {
public static CallbackManager callbackmanager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackmanager = CallbackManager.Factory.create();
setContentView(R.layout.activity_login);
LoginManager.getInstance().registerCallback(callbackmanager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// Use Access Token loginResult.getAccessToken().getToken());
}
@Override
public void onCancel() {
// Handle cancel event
}
@Override
public void onError(FacebookException error) {
//Handle Error event
}
});
}
}
按钮点击事件:
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList(
"email", "public_profile", "user_friends"));
清单文件 -
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProviderYOUR_APP_ID"
android:exported="true" />