简体   繁体   English

android facebook和google登录。 自定义按钮形状

[英]android facebook and google login. custom button shapes

I saw on app that has circle facebook and twitter images. 我在具有圆形Facebook和Twitter图像的应用程序中看到。 I will add screenshot 我将添加屏幕截图 在此处输入图片说明

Question is how they made facebook button circle shape? 问题是他们如何制作Facebook按钮的圆形形状? I know how to add custom text or background image on standart facebook button. 我知道如何在standart facebook按钮上添加自定义文本或背景图像。

   <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 但是我的结果与我预期的不同 在此处输入图片说明

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM