Search code examples
androidgoogle-app-enginefacebook-android-sdkandroid-buttongoogle-signin

How to make default Google and Facebook login buttons look even and pretty? Please see details


I have given option to login with google and facebook in my app.

But the default buttons looks uneven and ugly like this:

enter image description here

Here's xml code:

<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>

How can I make them look even and pretty?

Please let me know.

Sorry if question seems to be badly formatted. I'm just a beginner here.


Solution

  • Okay, I figured out the solution.

    Here's edited xml code:

    <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>
    

    Here's java code for facebook login button:

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

    Here is the result:

    enter image description here

    Peace!