在安卓中设计谷歌登录按钮

7
我无论到哪里都没有找到我想要的东西,我开始觉得这是不可能的。
问题在这里:我有一个用于登录的谷歌按钮,它很漂亮,但它不适合我的布局,我想使用我自己创建的谷歌按钮图片,就像图像按钮中发生的那样,这可能吗?如果可以,我该怎么做?
谢谢

请分享您的XML布局。 - Linh
是的,您可以添加自定义按钮。请分享您的 XML 代码。 - Vishnu M Menon
3个回答

12

我有你的问题解决方案。我一直尝试为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" />

个性化定制方法

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

编辑

googleBtnUi()方法中的return语句之前添加此代码

ViewGroup.LayoutParams params = tv.getLayoutParams();
params.width = 100;
params.height = 70;
tv.setLayoutParams(params);

你好,我已经接受了你的答案,它完美地解决了我的问题。谢谢。我想知道是否有可能使图像适应按钮的大小。我正在尝试一个很大的图像,我希望图像能够变成按钮的大小。 - user6866656
1
是的,你可以,请查看我的编辑答案。 - Vishal Chhodwani

4
如果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); 
    }
});

3
你可以创建自己的按钮,并使用XML标签android:drawableLeft="@drawable\file"在按钮上显示任何图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接