【Google Play Servicesを使って効率的に開発をする】com.google.android.gms.common.SignInButtonを使う
com.google.android.gms.commonに含まれているSignInButtonはGoogleにサインインするボタンの見た目だけを表すクラスです。
このクラスはあくまでも見た目だけを表すもので、実際のログイン処理は自分で実装する必要があります。
SignInButtonの見た目を変更する
SignInButtonは表示内容と色を変更することができます。見た目の変更には下記の定数で指定します。
int SIZE_ICON_ONLY | Googleアイコンだけが表示されます。 |
int SIZE_STANDARD | Googleアイコンとテキスト「ログイン」が表示されます。 |
int SIZE_WIDE | Googleアイコンとテキスト「にログイン」が表示されます。 |
int COLOR_AUTO | Google Play Servicesが色を決定します。 |
int COLOR_DARK | 暗い色合いのボタンになります |
int COLOR_LIGHT | 明るい色合いのボタンになります |
void setSize(int buttonSize) | |
int buttonSize | ボタンのサイズを表す定数を渡します。 |
void setColorScheme(int colorScheme) | |
int colorScheme | カラースキームを表す定数を渡します。 |
void setStyle(int buttonSize, int colorScheme) | |
int buttonSize | ボタンのサイズを表す定数を渡します。 |
int colorScheme | カラースキームを表す定数を渡します。 |
SignInButtonを制御する
void setOnClickListener(View.OnClickListener listener) | |
View.OnClickListener listener | クリックされた時のリスナーインターフェースを渡します。 |
void setEnabled(boolean enabled) | |
boolean enabled | trueでクリックがきるようになります、falseの場合だとクリックできず非活性な表示になります |
サンプルプログラム
package yona.trygms; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.LinearLayout; import android.widget.Toast; import com.google.android.gms.common.SignInButton; public class SignInButtonActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sign_in_button); LinearLayout container = (LinearLayout)findViewById(R.id.container); SignInButton iconOnlyButton = new SignInButton(this); iconOnlyButton.setSize(SignInButton.SIZE_ICON_ONLY); container.addView(iconOnlyButton); SignInButton standardButton = new SignInButton(this); standardButton.setSize(SignInButton.SIZE_STANDARD); container.addView(standardButton); SignInButton wideButton = new SignInButton(this); wideButton.setSize(SignInButton.SIZE_WIDE); container.addView(wideButton); SignInButton autoButton = new SignInButton(this); autoButton.setStyle(SignInButton.SIZE_WIDE, SignInButton.COLOR_AUTO); container.addView(autoButton); SignInButton lightButton = new SignInButton(this); lightButton.setStyle(SignInButton.SIZE_WIDE, SignInButton.COLOR_LIGHT); lightButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(SignInButtonActivity.this, "onClick", Toast.LENGTH_SHORT).show(); } }); container.addView(lightButton); SignInButton darkButton = new SignInButton(this); darkButton.setStyle(SignInButton.SIZE_WIDE, SignInButton.COLOR_DARK); darkButton.setEnabled(false); container.addView(darkButton); } }