David David - 1 month ago 6
Android Question

android facebook and google login. custom button shapes

I saw on app that has circle facebook and twitter images. I will add screenshot
enter image description here

Question is how they made facebook button circle shape? I know how to add custom text or background image on standart facebook button.

<com.facebook.login.widget.LoginButton
android:text=""
android:id="@+id/facebook_login_button"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/facebook_logo_button"
android:layout_gravity="center_horizontal"
/>


But my result is different from what I expected
enter image description here

Answer

You can use this class

public class Signup extends Activity{

   private AccessToken accessToken;

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


 // If the access token is available already assign it.
        accessToken = AccessToken.getCurrentAccessToken();


        btn_facebook = (Button) findViewById(R.id.facebook_button);
        btn_facebook.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (AccessToken.getCurrentAccessToken() != null) {
                    //  LoginManager.getInstance().logOut();
                    LoginManager.getInstance().logInWithReadPermissions(SignUpOption.this, Arrays.asList("public_profile", "email", "user_friends"));
                } else {
                    LoginManager.getInstance().logInWithReadPermissions(SignUpOption.this, Arrays.asList("public_profile", "email", "user_friends"));
                }
            }
        });


          LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {

                    @Override
                    public void onSuccess(final LoginResult loginResult) {

                        AccessToken accessToken = AccessToken
                                .getCurrentAccessToken();

                        GraphRequest request = GraphRequest.newMeRequest(
                                loginResult.getAccessToken(),
                                new GraphRequest.GraphJSONObjectCallback() {
                                    @Override
                                    public void onCompleted(final JSONObject object, GraphResponse response) {
                                        try {
                                            id = object.optString("id").toString();
                                            fullName = object.optString("name").toString();
                                            String array[] = fullName.split(" ");
                                            firstName = array[0].toString();
                                            lastName = array[1].toString();
                                            gender = object.optString("gender").toString();

                                            profilePicUrl = "https://graph.facebook.com/" + object.getString("id").toString()
                                                    + "/picture?type=large&return_ssl_resources=1";
                                            birthday = object.optString("birthday");
                                            try {
                                                emailAddress = object.getString("email").toString();
                                            } catch (JSONException e) {
                                                e.printStackTrace();
                                                emailAddress = "";
                                            }


                                        } catch (Exception e) {
                                            e.printStackTrace();
                                        }
                                    }
                                });
                        Bundle parameters = new Bundle();
                        parameters.putString("fields", "id,name,email,gender, birthday");
                        request.setParameters(parameters);
                        request.executeAsync();

                    }

                    @Override
                    public void onCancel() {
                        AccessToken.setCurrentAccessToken(null);
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        AccessToken.setCurrentAccessToken(null);
                       // Toast.makeText(SignUpOption.this, exception.getMessage(), Toast.LENGTH_LONG).show();
                        ShowMsg(exception.getMessage());
                    }
                });

  }


}

Design code :

<view
        android:id="@+id/facebook_button"
        class="Utils.CustomButton"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_marginTop="@dimen/dp_15"
        android:textAllCaps="false"
        android:background="@mipmap/fb_icon_big"
        android:text="Sign-Up with Facebook"
        android:textColor="@android:color/white"
        android:gravity="center"
       />