jokamax Posté(e) 25 janvier 2011 Share Posté(e) 25 janvier 2011 Bonjour, J'ai développé une classe custom dialog (extends Dialog) et je rencontre un problème. De base le setTextColor ne fonctionne pas directement le Java si je l'utilise dans cette extension (étrange). Je suis obligé d'utiliser un setTextAppearance pour mettre de la couleur, et du coup j'essaie de rajouter des effets (shadows) - que j'utilise ailleurs avec succès - et cela ne fonctionne pas :'(. Je vous donne les éléments de code pour exemple : Le style (dans styles.xml) que je suis obligé d'appliquer si je veux que la couleur soit prise en comte pour le texte. <style name="res_success"> <item name="android:textColor">@color/green</item> <item name="android:textSize">27sp</item> <item name="android:shadowColor">#ffffff</item> <item name="android:shadowRadius">3.0</item> <item name="android:shadowDx">1</item> <item name="android:shadowDy">1</item> </style> Le thème (dans themes.xml) que j'utilise à la construction pour que vous ayez tous les éléments : <resources> <style name="Dialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> </style> </resources> La construction de la dialog (j'ai simplifié le code) : public class ResourceGaugeFullDialog extends Dialog { private TextView tvTitle = null; private Typeface font; public ResourceGaugeFullDialog(Context ctx) { super(ctx, R.style.Dialog); this.ctx = ctx; font = ((GolemsApplication) ctx.getApplicationContext()).getScratchFont(); LayoutInflater mInflater = LayoutInflater.from(ctx); View mView = mInflater.inflate(R.layout.art_resource_fullgauge_dialog, null); tvTitle = (TextView) mView.findViewById(R.id.dial_txt_result); this.setContentView(mView); } Puis j'ai une fonction : public void loadSuccess(Integer qty, Integer exp) { tvTitle.setText(R.string.art_res_success); tvTitle.setTextAppearance(ctx, R.style.res_success); tvTitle.setTypeface(font); } Le texte est de la bonne couleur mais aucun effet shadows ... Sachant que j'utilise déjà cet effet ailleurs avec succès ... J'attend avec impatience vos suggestions ^^ Jok Lien vers le commentaire Partager sur d’autres sites More sharing options...
Naskel Posté(e) 25 janvier 2011 Share Posté(e) 25 janvier 2011 Bonjour, C'est étrange que cela ne fonctionne pas. Si tu essayes de passer par la méthode setShadowLayer d'une TextView avec les propriétés rentrées dans ton fichier style.xml. Est ce que tu as l'effet qui apparait ou pas? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 25 janvier 2011 Auteur Share Posté(e) 25 janvier 2011 Vraiment Space... Il y a des choses qui fonctionnent de manière trés étrange dans le SDK... Donc je suis arrivé à mes fins (merci Naskel). Au final il m'a fallu 2 actions : Utiliser setShadowLayer au dernier moment après l'initialisation de la box, cela active bien l'effet shadow. MAIS l'utilisation de couleurs personnalisées (R.color.white) ne fonctionne pas (noir à la place) comme mon setTextColor dont je parlais. Il a fallu que j'utilise Color.WHITE Pour conclure la bonne ligne pour la correction aura été : tvTitle.setShadowLayer(3, 1, 1, Color.WHITE); Alors peut être que j'ai un soucis de contexte ... mais ca serait étrange que cela se passe uniquement avec les Dialog Box. Merci Naskel ^^ Jok Lien vers le commentaire Partager sur d’autres sites More sharing options...
Naskel Posté(e) 25 janvier 2011 Share Posté(e) 25 janvier 2011 Mais de rien ce fut avec plaisir. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.