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