Android アプリケーションに Google サインイン ボタンを追加したいと考えています。しかし、Google サインイン ボタンのテキストを変更したり、カスタム ローカリゼーションを提供したりしたいですか?レイアウト ファイルのcom.google.android.gms.common.SignInButton
にandroid:text
を設定すればうまくいくと思うかもしれません。ただし、その属性はSignInButton
では使用できないことがわかります。
このライブラリは、標準のandroid:text
属性を使用して Google サインイン ボタンにテキストを簡単に追加するのに役立ちます。またapp:isDarkTheme="true"
属性を使用してボタンのテーマをダークまたはライトに設定することもできます。これは、サインイン ボタンを作成するための Google のガイドラインに従って行われます。
ライトテーマ(ホワイト) | ダークテーマ(ブルー) |
---|---|
![]() | ![]() |
app
モジュールレベルのbuild.gradle
ファイルに以下を追加します。
dependencies {
implementation ' com.github.shobhitpuri:custom-google-signin-button:2.0.0 '
}
また、最上位のbuild.gradle
ファイルに以下を追加します。
allprojects {
repositories {
google()
maven { url " https://jitpack.io " }
mavenCentral()
}
}
XML レイアウトには次のものがあります。
< RelativeLayout
...
xmlns : app = " http://schemas.android.com/apk/res-auto " >
< com .shobhitpuri.custombuttons.GoogleSignInButton
android : layout_width = " wrap_content "
android : layout_height = " wrap_content "
android : layout_centerInParent = " true "
android : text = " @string/google_sign_up "
app : isDarkTheme = " true " />
</ RelativeLayout >
app:isDarkTheme="{Boolean}"
: ボタンの青色のテーマと灰白色を切り替えます。ライブラリは文字色と背景色の変更を処理します。ボタンが押されたときやボタンがクリックされたときの色の変更も処理します。android:text="{string}"
: 通常どおり、ボタンにテキストを設定します。 Stackoverflow では、この問題に関して明らかに質問があります。その 1 つは、Google のサインイン ボタンのテキストを編集できますか?それらの多くは、ボタン内の最初のTextView
見つける、またはボタン内の任意のTextView
見つけるなどの「ハック」の使用を提案しています。問題は、Google が実装を更新すると機能しなくなる可能性があることです。
ドキュメントによると、Google は「サインイン ボタンのカスタマイズ」で説明されているようにカスタム ボタンを作成することを提案しています。次に、「サインイン ブランド ガイドライン」で説明されているブランド ガイドラインを使用することを提案します。これには、ボタンでのカスタム アイコンや画像の使用、テキスト サイズの詳細設定、パディング、ロゴのその他の推奨事項と禁止事項が含まれます。
Google の提案に従って実行するには、いくつかのカスタム作業が必要になります。この 3.93 KB の小さなライブラリがそれを実現します。ライブラリを改善するために、お気軽にプルリクエストを行ってください。サインイン ボタンの実装中にこの問題に遭遇したとき、再利用可能なソリューションを作成したいと思いました。ただみんなと共有したかっただけです。
MIT License
Copyright (c) 2024 Shobhit Puri
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.