Android google signin и кнопка входа в facebook выглядят совершенно иначе

Объект Facebook LoginButton по умолчанию и объект кнопки входа в систему Google имеют совершенно разные проявления, и они не соответствуют моему существующему макету вместе. Насколько мне известно, эти объекты не являются активами, которые я могу изменить без изменения самой библиотеки (где я бы предположил, что эти компоненты также являются исходными)

Как люди справляются с этим? Я видел приложения, у которых есть параметры входа для тех, которые используют свои собственные пользовательские кнопки, но в моей реализации я использую те данные объекты, которые автоматически вызывают их соответствующие библиотеки при щелчке.

Я могу, конечно, погрузиться глубже, но мне кажется, что я изобретаю не столь очевидное колесо, если я это сделаю

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

Этот объект не так явно является кнопкой, и я еще не проверял, действительно ли это кнопка.

Мне нужно использовать разные активы для входа в Google+ и Facebook.

Что у меня есть

Пример андроида, который мне нравится (приложение Duolingo)

Редактирование: после некоторых очень простых настроек макета, это результат (в ландшафтном режиме, чтобы осветить проблему)

Эти кнопки по-прежнему очень разные, и мне нужен другой актив, который все равно будет обращаться к правильным методам. Я как-то понимаю, как это сделать с Facebook, благодаря примерам, но вход в Google довольно загадочный для меня прямо сейчас

Solutions Collecting From Web of "Android google signin и кнопка входа в facebook выглядят совершенно иначе"

Чтобы изменить текст на кнопке Facebook, используйте:

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

Вам также необходимо добавить это к кнопке:

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

вот так:

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

Попробуйте это: добавьте этот метод в свою деятельность:

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

Добавьте следующую строку в onCreateMethod (где вы запустили идентификаторы):

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

Кнопки не оформлены точно так же – различная кривая по углам и использование теней. Поэтому невозможно сделать их одинаковыми. Самое близкое, что я мог получить, это сделать вертикальную линейную компоновку с точной шириной 215dip – и установить ширину кнопок, которые будут match_parent:

Введите описание изображения здесь

Это использовало следующий 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> 

С помощью кнопки Google+ вы можете просто использовать свой собственный актив – com.google.android.gms.common.SignInButton ведет себя так же, как android.widget.Button и вы регистрируете обработчик onClick обычным способом. Обязательно следуйте рекомендациям Google по брендингу при создании своего актива:

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

Обратите внимание, однако, что кнопка Google+ предоставляет переводы, которые вам нужно создать самостоятельно, если вы реализуете свою собственную кнопку на нескольких языках.

С последним sdk обе кнопки выглядят одинаково. Код и результаты приведены ниже.

Шаг 1: build.gradle

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

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

Шаг 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"/> 

Шаг 3: Результат Введите описание изображения здесь Шаг 4: Обновлено build.gradle с последним gcm

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

Шаг 5: Результат

Введите описание изображения здесь