我正在創建一個Android應用程序,現在我正在實現社交網絡登錄。android谷歌加登錄定製
Facebook的按鈕是好的,但谷歌+按鈕是在一個不同的語言的Facebook的。此外,它只是說「登錄」,我想說它「用谷歌登錄」
我是新來的android編程,看到我需要做一個自定義按鈕,但不知道該怎麼做(從哪裏開始,如何調用它),並使其看起來像谷歌加一個。
任何人都可以給我一點幫助嗎?
感謝
我正在創建一個Android應用程序,現在我正在實現社交網絡登錄。android谷歌加登錄定製
Facebook的按鈕是好的,但谷歌+按鈕是在一個不同的語言的Facebook的。此外,它只是說「登錄」,我想說它「用谷歌登錄」
我是新來的android編程,看到我需要做一個自定義按鈕,但不知道該怎麼做(從哪裏開始,如何調用它),並使其看起來像谷歌加一個。
任何人都可以給我一點幫助嗎?
感謝
我發現有兩種方式:
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);」方法。
每Customizing your Google+ sign in button guide,您可以使用
android:text="@string/common_signin_button_text_long"
來獲取文本「在與谷歌在您的按鈕符號作爲Google+ sign in branding guidelines
這不會對SignInButton類工作添加此XML命名空間前綴,它僅適用於一個自定義的Button/ImageButton。他們的圖像圖像甚至沒有被有效地命名爲Android可繪製資源,如果他們爲禁用/聚焦/按下/正常狀態提供了可繪製的選擇器,它將會很好! :( – swooby
討論試試這個功能改變谷歌加按鈕文字。
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;
}
}
}
設置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"
當我試圖使用自定義按鈕時,標誌片段崩潰與此錯誤:android.support.v7.widget.AppCompatButton不能轉換爲com.google.android.gms.common.SignInButton – edwinj
方法1做什麼與SignIn按鈕? – Yeahia2508
這只是一個正常的按鈕,使用官方的谷歌資源。它是由你來處理onClick和實現呼叫實際登錄...因此,爲什麼我說:「打架」 – swooby