Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android google signin y facebook inicio de sesión botón de mirar completamente diferente

El objeto predeterminado de Facebook LoginButton y el objeto de botón de inicio de sesión de Google tienen apariencias completamente diferentes y no encajan en mi diseño existente. A mi entender, estos objetos no son activos que puedo modificar sin cambiar la propia biblioteca (donde supongo que estos componentes también son de código abierto)

¿Cómo lidiar con esto? He visto aplicaciones que tienen opciones de inicio de sesión para aquellos que usan sus propios botones personalizados, pero en mi implementación estoy usando los objetos dados que llaman automáticamente a sus respectivas bibliotecas al hacer clic.

Por supuesto, puedo bucear más profundo, pero siento que estoy reinventando la rueda no tan obvio si lo hice

<com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> 

Este objeto no es tan obviamente un botón, y todavía no he inspeccionado para ver si realmente es un botón.

Necesito usar diferentes recursos para el botón de inicio de sesión de Google+ y de Facebook.

Lo que tengo

Un ejemplo de Android que me gusta (Duolingo app)

Editar: después de algunos ajustes de diseño muy simple, este es el resultado (en modo horizontal, sólo para iluminar el problema)

Estos botones son todavía muy diferentes y necesito un activo diferente que todavía tendrá acceso a los métodos correctos. Yo tipo de obtener la forma de hacerlo con Facebook, gracias a los ejemplos, pero el inicio de sesión de Google es bastante críptico para mí ahora

  • Google plus para android: credenciales no válidas
  • Plus.PeopleApi.getCurrentPerson devuelve null
  • No funciona correctamente en el fragmento de Android
  • Android: cómo obtener la imagen del perfil de Google+ y la fotografía de portada en el cajón de navegación
  • Acceda a google plus client desde múltiples actividades
  • Enlace profundo comparte con Google+, pero el enlace no hace nada
  • Aplicación integrada "Enviar comentarios"
  • Cómo salir completamente de google plus de diferentes actividades en android?
  • 4 Solutions collect form web for “Android google signin y facebook inicio de sesión botón de mirar completamente diferente”

    Para cambiar el texto en el botón de Facebook:

     fb:login_text="Put your login text here" fb:logout_text="Put your logout text here" 

    También tendrá que añadir esto al botón:

     xmlns:fb="http://schemas.android.com/apk/res-auto" 

    al igual que:

     <com.facebook.widget.LoginButton xmlns:fb="http://schemas.android.com/apk/res-auto" android:id="@+id/login_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" android:layout_marginBottom="0dp" fb:login_text="Sign in with Facebook" /> 

    Pruebe esto: Añada este método a su actividad:

     protected void setGooglePlusButtonText(SignInButton signInButton, String buttonText) { for (int i = 0; i < signInButton.getChildCount(); i++) { View v = signInButton.getChildAt(i); if (v instanceof TextView) { TextView tv = (TextView) v; tv.setTextSize(15); tv.setTypeface(null, Typeface.NORMAL); tv.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS); tv.setText(buttonText); return; } } } 

    Añada la siguiente línea en onCreateMethod (donde tiene init los id's):

     setGooglePlusButtonText(btnSignIn, getString(R.string.common_signin_button_text_long)); 

    Los botones no están diseñados exactamente de la misma manera – curva diferente en las esquinas y el uso de sombras. Así que no es posible hacer que se vean exactamente iguales. Lo más cercano que pude conseguir fue hacer un diseño lineal vertical con un ancho exacto de 215dip – y establecer el ancho de los botones para ser match_parent:

    Introduzca aquí la descripción de la imagen

    Esto utilizó el siguiente layout.xml:

     <LinearLayout android:layout_width="215dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:orientation="vertical" > <com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="match_parent" android:layout_height="wrap_content" /> <com.facebook.widget.LoginButton android:id="@+id/authButton" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> 

    Con el botón de Google+, simplemente puede utilizar su propio recurso: com.google.android.gms.common.SignInButton comporta igual que android.widget.Button y registra un controlador onClick de la forma normal. Sólo asegúrese de seguir las directrices de Google para la creación de marcas cuando crea su activo:

    https://developers.google.com/+/branding-guidelines

    Sin embargo, tenga en cuenta que el botón de Google+ proporciona traducciones que necesitará crear usted mismo si implementa su propio botón en varios idiomas.

    Con la última sdk, ambos botones son similares. El código y los resultados se mencionan a continuación.

    Paso 1: build.gradle

    Compilar 'com.facebook.android:facebook-android-sdk:4.6.0'

    Compilar 'com.google.android.gms: play-services: 7.5.0'

    Paso 2: myActivity.xml

     <com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="match_parent" android:layout_height="wrap_content" /> <com.facebook.login.widget.LoginButton android:id="@+id/login_button" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical"/> 

    Paso 3: Resultado Introduzca aquí la descripción de la imagen Paso 4: Actualizado build.gradle con el último gcm

     compile 'com.facebook.android:facebook-android-sdk:4.6.0' compile 'com.google.android.gms:play-services:8.4.0' 

    Paso 5: Resultado

    Introduzca aquí la descripción de la imagen

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.