it-swarm.com.de

android google signin und facebook login button sehen ganz anders aus

Das standardmäßige Facebook LoginButton-Objekt und das Google SignIn-Schaltflächenobjekt haben ein völlig anderes Erscheinungsbild und passen nicht in mein vorhandenes Layout. Meines Wissens sind diese Objekte keine Assets, die ich ändern kann, ohne die Bibliothek selbst zu ändern (wobei ich davon ausgehen würde, dass diese Komponenten auch Open Source sind).

Wie gehen die Leute damit um? Ich habe Apps mit Anmeldeoptionen für beide gesehen, die ihre eigenen benutzerdefinierten Schaltflächen verwenden. In meiner Implementierung verwende ich jedoch die angegebenen Objekte, die ihre jeweiligen Bibliotheken automatisch beim Klicken aufrufen.

Ich kann natürlich tiefer eintauchen, aber ich habe das Gefühl, das nicht so offensichtliche Rad neu zu erfinden, wenn ich das tun würde

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

Dieses Objekt ist offensichtlich keine Schaltfläche, und ich habe noch nicht untersucht, ob es sich wirklich um eine Schaltfläche handelt.

Ich muss unterschiedliche Assets für die Google+ und die Facebook-Login-Schaltfläche verwenden.

Was ich habe

Ein Android-Beispiel, das mir gefällt (Duolingo-App)

edit: nach einigen sehr einfachen Layout-Anpassungen ist dies das Ergebnis (im Querformat nur um das Problem zu beleuchten)

diese Schaltflächen sind immer noch sehr unterschiedlich und ich brauche ein anderes Asset, das immer noch auf die richtigen Methoden zugreifen kann. Ich verstehe es dank Facebook, wie man das mit Facebook machen kann, aber die Anmeldung bei Google ist für mich jetzt ziemlich kryptisch

12
CQM

Um den Text auf der Facebook-Schaltfläche zu ändern, verwenden Sie:

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

Sie müssen dies auch der Schaltfläche hinzufügen:

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

wie so:

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

Versuchen Sie Folgendes: Fügen Sie Ihrer Aktivität diese Methode hinzu:

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

Fügen Sie folgende Zeile in onCreateMethod Hinzu (wo Sie die IDs initialisiert haben):

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

Die Schaltflächen sind nicht genau so gestaltet - unterschiedliche Kurven an den Ecken und die Verwendung von Schlagschatten. Daher ist es nicht möglich, sie genau gleich aussehen zu lassen. Am besten konnte ich ein vertikales lineares Layout mit einer genauen Breite von 215dip erstellen - und die Breite der Schaltflächen auf match_parent einstellen:

enter image description here

Dies verwendete das folgende 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>

Mit dem Google+ Button können Sie einfach Ihr eigenes Asset verwenden - com.google.Android.gms.common.SignInButton verhält sich wie Android.widget.Button und Sie registrieren einen onClick-Handler wie gewohnt. Befolgen Sie beim Erstellen Ihres Assets unbedingt die Branding-Richtlinien von Google:

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

Beachten Sie jedoch, dass die Google+ Schaltfläche Übersetzungen bereitstellt, die Sie selbst erstellen müssen, wenn Sie Ihre eigene Schaltfläche in mehreren Sprachen implementieren.

1
Lee

Bei der neuesten SDK sehen beide Tasten ähnlich aus. Der Code und die Ergebnisse sind unten aufgeführt.

Schritt 1: build.gradle

'com.facebook.Android:facebook-Android-sdk:4.6.0' kompilieren

"com.google.Android.gms: play-services: 7.5.0" kompilieren

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

Schritt 3: Ergebnis  enter image description here Schritt 4: Build.gradle mit dem neuesten gcm aktualisiert

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

Schritt 5: Ergebnis

 enter image description here

0
Annada