Vous souhaitez ajouter un bouton Google Sign-In à votre application Android. Mais vous souhaitez modifier le texte du bouton Google Sign-In ou proposer une localisation personnalisée ? On pourrait penser que définir android:text
sur com.google.android.gms.common.SignInButton
dans votre fichier de mise en page ferait l'affaire. Cependant, il s'avère que cet attribut n'est pas disponible pour SignInButton
.
Cette bibliothèque vous aide à ajouter facilement du texte au bouton de connexion Google à l'aide de l'attribut standard android:text
. Il vous permet également de définir le thème du bouton sur sombre ou clair à l'aide de l'attribut app:isDarkTheme="true"
. Il le fait en suivant les directives de Google pour créer un bouton de connexion.
Thème clair (blanc) | Thème sombre (bleu) |
---|---|
![]() | ![]() |
Ajoutez ce qui suit au fichier build.gradle
au niveau du module de votre app
:
dependencies {
implementation ' com.github.shobhitpuri:custom-google-signin-button:2.0.0 '
}
Ajoutez également ce qui suit dans le fichier build.gradle
de niveau supérieur :
allprojects {
repositories {
google()
maven { url " https://jitpack.io " }
mavenCentral()
}
}
Dans votre mise en page XML, ayez les éléments suivants :
< 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}"
: Pour basculer entre le thème bleu et gris blanc pour le bouton. La bibliothèque gère le changement de couleur du texte et de la couleur d'arrière-plan. Il gère également le changement de couleur en appuyant sur un bouton ou en cliquant sur un bouton.android:text="{string}"
: Comme d'habitude pour définir le texte sur le bouton. Sur Stackoverflow, des questions ont évidemment été posées à ce sujet. L'un d'eux est Puis-je modifier le texte du bouton de connexion sur Google ? Beaucoup d'entre eux suggèrent d'utiliser des "hacks" comme trouver le premier TextView
dans le bouton ou trouver n'importe quel TextView
dans le bouton. Le problème avec eux est qu'ils pourraient cesser de fonctionner si Google met à jour la mise en œuvre.
À partir de la documentation, Google suggère de créer un bouton personnalisé comme mentionné dans Personnalisation du bouton de connexion. Il suggère ensuite d'utiliser les directives de marque mentionnées dans les directives de marque de connexion. Cela inclut l'utilisation d'icônes et d'images personnalisées dans le bouton, la définition de la taille du texte en fonction des détails, des remplissages et d'autres choses à faire et à ne pas faire pour le logo.
Faire selon la suggestion de Google implique un travail personnalisé. Cette petite bibliothèque de 3,93 Ko le fait pour vous. N'hésitez pas à faire des pull request pour améliorer la bibliothèque. Je voulais créer une solution réutilisable lorsque j'ai rencontré ce problème lors de la mise en œuvre du bouton de connexion. Je voulais juste partager avec tout le monde.
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.