Je me demande comment ajouter une ombre sur du texte dans Android?
J'ai le code suivant qui est appliqué sur un bitmap et je voulais être ombré ...
paint.setColor(Color.BLACK);
paint.setTextSize(55);
paint.setFakeBoldText(false);
paint.setShadowLayer(1, 0, 0, Color.BLACK); //This only shadows my whole view...
Réponses:
Vous devriez pouvoir ajouter le style, comme ceci (tiré du code source de Ringdroid):
Et dans votre mise en page, utilisez le style comme celui-ci:
Edit: le code source peut être consulté ici: https://github.com/google/ringdroid
Edit2: Pour définir ce style par programmation, vous feriez quelque chose comme ceci (modifié à partir de cet exemple pour correspondre aux ressources de ringdroid ci-dessus)
La signature pour
setTextAppearance
estla source
Vous pouvez faire les deux en code et en XML. Seulement 4 choses de base à régler.
par exemple
Cela dessine une ombre proéminente sur le côté inférieur gauche du texte. Dans le code, vous pouvez ajouter quelque chose comme ceci;
la source
Dans le code de mise en page XML ci-dessus, le textview1 est donné avec un effet d'ombre dans la mise en page. ci-dessous les éléments de configuration sont
android: shadowDx - spécifie le décalage de l'axe X de l'ombre. Vous pouvez donner des valeurs - / +, où -Dx dessine une ombre à gauche du texte et + Dx à droite
android: shadowDy - il spécifie le décalage de l'axe Y de l'ombre. -Dy spécifie une ombre au-dessus du texte et + Dy spécifie en dessous du texte.
android: shadowRadius - spécifie à quel point l'ombre doit être floue sur les bords. Fournissez une petite valeur si l'ombre doit être proéminente. android: shadowColor - spécifie la couleur de l'ombre
Effet d'ombre sur Android TextView de manière pragmatique
Utilisez l'extrait de code ci-dessous pour obtenir l'effet d'ombre sur le deuxième TextView de manière pragmatique.
Production :
la source
Si vous souhaitez obtenir une ombre comme celle qu'Android fait dans le lanceur, nous gérons ces valeurs. Ils sont utiles si vous souhaitez créer des TextViews qui apparaîtront sous forme de widget, sans arrière-plan.
la source
Dessinez 2 textes: un gris (ce sera l'ombre) et par-dessus dessinez le deuxième texte (coordonnée y 1px de plus que le texte d'ombre).
la source
puis utilisez comme
la source