圆角谷歌登录按钮 - 安卓

7

我正在尝试在我的应用程序中添加“使用Google登录”的功能。我正在使用以下代码添加Google登录按钮:

<com.google.android.gms.common.SignInButton
   android:id="@+id/btn_google_signin"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="24dp"
   android:background="?attr/selectableItemBackground"
   android:elevation="2dp"></com.google.android.gms.common.SignInButton>

这是渲染一个矩形按钮。但我想要圆角按钮。有没有办法用圆角定制这个按钮?

P.S. - 我不是要定制普通按钮。我特别是在寻找Google SignInButton。如果你只知道这个,请回复。


你需要为此拥有可绘制的背景。 - santosh kumar
请查看此帖子以获取答案 https://dev59.com/Xm025IYBdhLWcg3wW0ux - Dmitry Smolyaninov
这是针对普通按钮的,我知道。非常适用于Google登录按钮。 - Shahnaz Khan
3个回答

0
您可以像这样使用“Material”按钮和“SignInButton”,
    <com.google.android.gms.common.SignInButton
        android:id="@+id/sign_in_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
      />

    <com.google.android.material.button.MaterialButton
        android:id="@+id/sign_in_button1"
        android:layout_width="300dp"
        android:layout_height="60dp"
        app:cornerRadius="10dp"
        android:layout_weight="1"
        android:backgroundTint="@color/white"
        android:text="Login With Google"
        android:textColor="@color/black"
        app:icon="@drawable/googleg_standard_color_18"
        app:iconPadding="10dp"
        app:iconTint="#00100D0D"
        app:iconTintMode="src_atop"
 />

在Java代码中,您可以像这样访问它:

        SignInButton signInButton = findViewById(R.id.sign_in_button);
        signInButton.setSize(SignInButton.SIZE_STANDARD);
        TextView textView = (TextView) signInButton.getChildAt(0);
        textView.setText("Log in With Google");

        findViewById(R.id.sign_in_button1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               Intent signInIntent = mGoogleSignInClient.getSignInIntent();
               startActivityForResult(signInIntent, RC_SIGN_IN);
            }
        });

-1

在drawable文件夹中的round_style.xml。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:state_pressed="true" >
     <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
         <stroke android:width="1dip" android:color="#5e7974" />
         <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92"  />            
     </shape>
 </item>
<item android:state_focused="true">
     <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
         <stroke android:width="1dip" android:color="#5e7974" />
         <solid android:color="#58857e"/>       
     </shape>
 </item>  
<item >
    <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
         <stroke android:width="1dip" android:color="#5e7974" />
         <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />            
     </shape>
 </item>
</selector>

或者

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="#DEB887"/>
        <stroke android:color="#8A2BE2" android:width="2dp" />
        <!--corners allow us to make the rounded corners button-->
        <corners android:radius="15dp" />
    </shape>
</item>
</selector>

现在使用

<com.google.android.gms.common.SignInButton
   android:id="@+id/btn_google_signin"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="24dp"
   android:background="@drawable/round_style"
   android:elevation="2dp"></com.google.android.gms.common.SignInButton>

1
使用您的解决方案,圆形背景位于后面,按钮放置在圆形背景上。 - Shahnaz Khan

-1
您可以使用卡片视图(Card View)。并将SignInButton放入CardView中,如下所示:
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"                  
   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="wrap_content"
   android:layout_height="match_parent"       
   android:layout_marginBottom="4dp"                                  
   android:layout_marginRight="4dp"                                   
   android:layout_marginTop="4dp"                                  
   app:cardCornerRadius="4dp"
   app:cardElevation="2dp">

   <com.google.android.gms.common.SignInButton
     android:id="@+id/btn_google_signin"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginTop="24dp"
     android:background="?attr/selectableItemBackground"
     android:elevation="2dp"></com.google.android.gms.common.SignInButton>

</android.support.v7.widget.CardView>

这将为背景添加圆角,但不会在“登录”按钮上添加圆角。 - E.Akio

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