如何使默认 Google 和 Facebook 登录按钮看起来均匀漂亮?请查看详情
How to make default Google and Facebook login buttons look even and pretty? Please see details
我在我的应用程序中提供了使用 google 和 Facebook 登录的选项。
但是默认按钮看起来像这样不均匀和丑陋:
这里是 xml 代码:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentPadding="10dp"
app:cardElevation="2dp"
app:cardBackgroundColor="@android:color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.gms.common.SignInButton
android:id="@+id/google_login_button"
android:layout_width="@dimen/sign_in_btn_width"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<com.facebook.login.widget.LoginButton
android:id="@+id/facebook_login_button"
android:layout_width="@dimen/sign_in_btn_width"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_between_google_facebook_signup_btn"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</android.support.v7.widget.CardView>
怎样才能使它们看起来均匀漂亮?
请告诉我。
抱歉,如果问题的格式似乎有误。我只是初学者。
Google 有一个 guide 用于自定义 Google 的登录 Button
另外 可用于自定义您的登录按钮
这是自定义登录按钮(Facebook)
<android.support.v7.widget.CardView
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
app:cardBackgroundColor="#3b5998">
<RelativeLayout
android:id="@+id/login_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:background="#3b5998">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:src="@drawable/ic_facebook" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Login With Facebook"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
</RelativeLayout>
</android.support.v7.widget.CardView>
而且你必须监听点击事件
login_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedLoginButton = FACEBOOK;
LoginManager.getInstance().logOut();
LoginManager.getInstance().logInWithReadPermissions(SigninFragment.this, Arrays.asList("email,public_profile"));
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
handleFacebookLogin(loginResult);
}
@Override
public void onError(FacebookException exception) {
handleFacebookError(exception);
}
@Override
public void onCancel() {
handleFacebookCancel();
}
});
}
});
为 google 加上;
btn_sign_in.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
好的,我找到了解决方案。
这里是经过编辑的 xml 代码:
<LinearLayout
android:layout_width="@dimen/sign_in_btn_width"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center">
<com.google.android.gms.common.SignInButton
android:id="@+id/google_login_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<com.facebook.login.widget.LoginButton
android:id="@+id/facebook_login_button"
android:layout_width="match_parent"
android:layout_height="@dimen/sign_in_btn_height"
android:layout_marginTop="@dimen/margin_between_google_facebook_signup_btn"
android:layout_gravity="center_horizontal"
android:paddingTop="11dp"
android:paddingBottom="11dp"
android:paddingLeft="12dp"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
xmlns:facebook="http://schemas.android.com/apk/res-auto"
facebook:com_facebook_login_text=" Sign in"/>
</LinearLayout>
</android.support.v7.widget.CardView>
这是 Facebook 登录按钮的 java 代码:
float fbIconScale = 1.10F;
Drawable drawable = getBaseContext().getResources().getDrawable(
com.facebook.R.drawable.com_facebook_button_icon);
drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*fbIconScale),
(int)(drawable.getIntrinsicHeight()*fbIconScale));
/* *************************************
* FACEBOOK *
***************************************/
/* Load the Facebook login button and set up the tracker to monitor access token changes */
mFacebookCallbackManager = CallbackManager.Factory.create();
mFacebookLoginButton = (LoginButton) findViewById(R.id.facebook_login_button);
mFacebookLoginButton.setCompoundDrawables(drawable, null, null, null);
结果如下:
和平!
我在我的应用程序中提供了使用 google 和 Facebook 登录的选项。
但是默认按钮看起来像这样不均匀和丑陋:
这里是 xml 代码:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentPadding="10dp"
app:cardElevation="2dp"
app:cardBackgroundColor="@android:color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.gms.common.SignInButton
android:id="@+id/google_login_button"
android:layout_width="@dimen/sign_in_btn_width"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<com.facebook.login.widget.LoginButton
android:id="@+id/facebook_login_button"
android:layout_width="@dimen/sign_in_btn_width"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_between_google_facebook_signup_btn"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</android.support.v7.widget.CardView>
怎样才能使它们看起来均匀漂亮?
请告诉我。
抱歉,如果问题的格式似乎有误。我只是初学者。
Google 有一个 guide 用于自定义 Google 的登录 Button
另外
这是自定义登录按钮(Facebook)
<android.support.v7.widget.CardView
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
app:cardBackgroundColor="#3b5998">
<RelativeLayout
android:id="@+id/login_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:background="#3b5998">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:src="@drawable/ic_facebook" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Login With Facebook"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
</RelativeLayout>
</android.support.v7.widget.CardView>
而且你必须监听点击事件
login_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedLoginButton = FACEBOOK;
LoginManager.getInstance().logOut();
LoginManager.getInstance().logInWithReadPermissions(SigninFragment.this, Arrays.asList("email,public_profile"));
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
handleFacebookLogin(loginResult);
}
@Override
public void onError(FacebookException exception) {
handleFacebookError(exception);
}
@Override
public void onCancel() {
handleFacebookCancel();
}
});
}
});
为 google 加上;
btn_sign_in.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
好的,我找到了解决方案。
这里是经过编辑的 xml 代码:
<LinearLayout
android:layout_width="@dimen/sign_in_btn_width"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center">
<com.google.android.gms.common.SignInButton
android:id="@+id/google_login_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<com.facebook.login.widget.LoginButton
android:id="@+id/facebook_login_button"
android:layout_width="match_parent"
android:layout_height="@dimen/sign_in_btn_height"
android:layout_marginTop="@dimen/margin_between_google_facebook_signup_btn"
android:layout_gravity="center_horizontal"
android:paddingTop="11dp"
android:paddingBottom="11dp"
android:paddingLeft="12dp"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
xmlns:facebook="http://schemas.android.com/apk/res-auto"
facebook:com_facebook_login_text=" Sign in"/>
</LinearLayout>
</android.support.v7.widget.CardView>
这是 Facebook 登录按钮的 java 代码:
float fbIconScale = 1.10F;
Drawable drawable = getBaseContext().getResources().getDrawable(
com.facebook.R.drawable.com_facebook_button_icon);
drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*fbIconScale),
(int)(drawable.getIntrinsicHeight()*fbIconScale));
/* *************************************
* FACEBOOK *
***************************************/
/* Load the Facebook login button and set up the tracker to monitor access token changes */
mFacebookCallbackManager = CallbackManager.Factory.create();
mFacebookLoginButton = (LoginButton) findViewById(R.id.facebook_login_button);
mFacebookLoginButton.setCompoundDrawables(drawable, null, null, null);
结果如下:
和平!