2014-07-13 84 views
4

我正在創建一個Android應用程序,現在我正在實現社交網絡登錄。android谷歌加登錄定製

Facebook的按鈕是好的,但谷歌+按鈕是在一個不同的語言的Facebook的。此外,它只是說「登錄」,我想說它「用谷歌登錄」

我是新來的android編程,看到我需要做一個自定義按鈕,但不知道該怎麼做(從哪裏開始,如何調用它),並使其看起來像谷歌加一個。

任何人都可以給我一點幫助嗎?

感謝

回答

5

我發現有兩種方式:

1)用自定義按鈕豁出去了:

<Button 
    android:id="@+id/btnGooglePlus" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/common_signin_btn_text_dark" 
    android:text="@string/common_signin_button_text_long" 
    android:textColor="@android:color/white" 
    android:textAllCaps="false" 
    android:textSize="15sp" 
    android:paddingEnd="16dp" 
    android:paddingStart="62dp"/> 

2)不要打它(太多):

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

mGooglePlusSignInButton = (SignInButton) findViewById(R.id.btnGooglePlus); 
mGooglePlusSignInButton.setSize(SignInButton.SIZE_WIDE); 
setGooglePlusTextAllCaps(mGooglePlusSignInButton, false); 

public static void setGooglePlusTextAllCaps(SignInButton signInButton, boolean allCaps) 
{ 
    for (int i = 0; i < signInButton.getChildCount(); i++) 
    { 
     View v = signInButton.getChildAt(i); 

     if (v instanceof TextView) 
     { 
      TextView tv = (TextView) v; 
      tv.setAllCaps(allCaps); 
      return; 
     } 
    } 
} 

主要技巧似乎是「mGooglePlusSignInButton.setSize(SignInButton.SIZE_WIDE);」方法。

+1

當我試圖使用自定義按鈕時,標誌片段崩潰與此錯誤:android.support.v7.widget.AppCompatButton不能轉換爲com.google.android.gms.common.SignInButton – edwinj

+0

方法1做什麼與SignIn按鈕? – Yeahia2508

+0

這只是一個正常的按鈕,使用官方的谷歌資源。它是由你來處理onClick和實現呼叫實際登錄...因此,爲什麼我說:「打架」 – swooby

1

Customizing your Google+ sign in button guide,您可以使用

android:text="@string/common_signin_button_text_long" 

來獲取文本「在與谷歌在您的按鈕符號作爲Google+ sign in branding guidelines

+3

這不會對SignInButton類工作添加此XML命名空間前綴,它僅適用於一個自定義的Button/ImageButton。他們的圖像圖像甚至沒有被有效地命名爲Android可繪製資源,如果他們爲禁用/聚焦/按下/正常狀態提供了可繪製的選擇器,它將會很好! :( – swooby

7

討論試試這個功能改變谷歌加按鈕文字。

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.setText(buttonText); 
      return; 
     } 
    } 
} 
+0

謝謝,讓它這樣工作。 – Cafn

+3

除非你想在你的用戶,你應該可能還應該添加「tv.setAllCaps(false);」 – swooby

+0

不能告訴你多少這個答案救了我的......! –

3

設置app:buttonSize="wide"這樣

<com.google.android.gms.common.SignInButton 
     android:id="@+id/sign_in_button" 
     android:layout_width="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_height="wrap_content" 
     app:buttonSize="wide" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="48dp"/> 

但是,不要忘了在上面

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