12

デフォルトの Facebook LoginButton オブジェクトと Google SignIn ボタン オブジェクトは外観がまったく異なり、既存のレイアウトに収まりません。私の知る限り、これらのオブジェクトは、ライブラリ自体を変更せずに変更できる資産ではありません (これらのコンポーネントもオープン ソースであると仮定します)。

人々はこれにどのように対処しますか?独自のカスタム ボタンを使用する両方のサインイン オプションを持つアプリを見てきましたが、私の実装では、クリック時にそれぞれのライブラリを自動的に呼び出す特定のオブジェクトを使用しています。

もちろん、もっと深く潜ることもできますが、そうすると、それほど明白ではない車輪を再発明しているように感じます

 <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 のログイン ボタンの両方に異なるアセットを使用する必要があります。

私が持っているもの

私が気に入っている Android の例 (Duolingo アプリ)

編集:いくつかの非常に簡単なレイアウト調整の後、これが結果です(ランドスケープモードで、問題を明らかにするためだけに)

これらのボタンは依然として非常に異なっており、正しいメソッドにアクセスできる別のアセットが必要です。例のおかげで、Facebookでそれを行う方法をある程度理解できますが、Googleサインインは今のところかなり不可解です

4

4 に答える 4

12

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"
        />
于 2013-09-30T05:23:36.180 に答える
1

ボタンのスタイルはまったく同じではありません。コーナーの曲線が異なり、ドロップ シャドウが使用されています。したがって、それらをまったく同じに見せることはできません。私が得ることができる最も近いものは、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+ ボタンは翻訳を提供しますが、独自のボタンを複数の言語で実装する場合は、自分で作成する必要があります。

于 2013-05-31T10:56:08.950 に答える
0

最新の SDK では、両方のボタンが似ています。コードと結果を以下に示します。

ステップ 1: build.gradle

「com.facebook.android:facebook-android-sdk:4.6.0」をコンパイルします

「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: 結果

ここに画像の説明を入力

于 2016-04-27T21:30:24.717 に答える