布局Google登录按钮 - Android

Fel*_*ipe 5 layout android google-signin

我到处寻找而没有找到我想要的东西,我开始认为这是不可能的.

这是一个问题:我有一个用于登录的谷歌按钮,它是一个漂亮的按钮,但它不适合我的布局,我想使用我在谷歌按钮创建的图像,就像在图像中发生的一样按钮,这可能吗?如果是,我该怎么做?

谢谢

Vis*_*ani 5

我有你的问题解决方案。我总是尝试将其用于Google Plus的自定义登录按钮。

试试这个,这是我测试过的。

这是代码。

xml布局

<com.google.android.gms.common.SignInButton
    android:id="@+id/google_button"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="5dp"
    android:text="Text"
    android:layout_alignParentTop="true"
    android:layout_margin="10dp"
    android:textSize="18sp" />
Run Code Online (Sandbox Code Playgroud)

定制方法

private void googleBtnUi() {
    // TODO Auto-generated method stub

    SignInButton googleButton = (SignInButton) findViewById(R.id.google_button);
    googleButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

    for (int i = 0; i < googleButton.getChildCount(); i++) {
        View v = googleButton.getChildAt(i);

        if (v instanceof TextView)
        {
            TextView tv = (TextView) v;
            tv.setTextSize(14);
            tv.setTypeface(null, Typeface.NORMAL);
            tv.setText("My Text");
            tv.setTextColor(Color.parseColor("#FFFFFF"));
            tv.setBackgroundDrawable(getResources().getDrawable(
                    R.drawable.ic_launcher));
            tv.setSingleLine(true);
            tv.setPadding(15, 15, 15, 15);

            return;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

在方法返回之前添加此代码 googleBtnUi()

ViewGroup.LayoutParams params = tv.getLayoutParams();
params.width = 100;
params.height = 70;
tv.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)


小智 5

如果 Google 登录按钮不适合您的布局,则无需使用它。您可以使用自己的设计简单地创建自己的按钮,并在 OnClick 方法中创建 Google 登录意图。

Button myGoogleBtn = (Button) findViewById(R.id.loginGoogle);
myGoogleBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       Intent signInIntent = mGoogleSignInClient.getSignInIntent();
       startActivityForResult(signInIntent, RC_SIGN_IN); 
    }
});
Run Code Online (Sandbox Code Playgroud)