Olivier69 Posté(e) 14 avril 2010 Share Posté(e) 14 avril 2010 Bonjour, J'ai fait un widget mais j'aimerais que l'utilisateur puisse changer de thème à volonté. Alors je me suis dit que le mieux était de remplacer les drawables dans les ressources par des images stockées en mémoire (sdcard). Je sais qu'on peut transformer une bitmap en drawable, mais je ne sais pas comment remplacer l'ancienne drawable que je veux remplacer. J'imagine un truc avec inputStream et outputStream mais il me faudrait aussi une Uri. Si qqun à une idée, je l'en remercierais de la partager! Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 14 avril 2010 Share Posté(e) 14 avril 2010 lol....c'est la mode.... bon blague à part c'est simple: ne fais pas ton widget en dur dans le xml. laisse les images vides, et remplit les dans le code : updateViews.setImageViewUri(R.id.tonimage, Uri.parse("/sdcard/Tonimage.png")); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier69 Posté(e) 23 avril 2010 Auteur Share Posté(e) 23 avril 2010 J'ai mis un peut de temps à répondre! pardon! Oui j'ai envisagé cette possibilité mais il y a deux problèmes. 1) on ne peut changer la background de cette façon... 2)si carte sd est cours de lecture sur l'ordi ou retirée, ça va aboutir a un plantage lors du rafraichissement... c'est ces deux points qui m'intéressent. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 23 avril 2010 Share Posté(e) 23 avril 2010 1) on ne peut changer la background de cette façon... Il existe une propriété "maImageView.setBackgroundDrawable(monDrawable)" qui te permettra de changer facilement les fonds. C'est ce que j'utilise et cela ne m'a jamais posé de soucis. 2)si carte sd est cours de lecture sur l'ordi ou retirée, ça va aboutir a un plantage lors du rafraichissement...c'est ces deux points qui m'intéressent. Effectivement, on peut voir cela dans les widget "pure" de koxx, freedhome, et plein d'autres applis dont les miennes, il n'aime pas vraiment qu'on retire la carte SD. Je suis en train de plancher sur la sauvegarde des images dans une base de données sqlite ( sous forme de blob) pour ne plus avoir de soucis. Je mettrai le code une fois que j'y serai arrivé. J'en avais déjà parlé il y a treeess longtemps: https://forum.frandroid.com/forum/viewtopic.php?id=5850 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier69 Posté(e) 25 avril 2010 Auteur Share Posté(e) 25 avril 2010 Merci pour ces infos, je vais les exploiter au mieux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier69 Posté(e) 26 avril 2010 Auteur Share Posté(e) 26 avril 2010 Je crois que j'ai pas trop compris. ImageView i=new ImageView(context); i.setBackgroundResource(R.drawable.eph_background); si ici je cré un nouveau background, comment je l'applique ensuite à ma view? Parce que là, il se passe rien... (Je précise que je suis sur un appWidget, et que je ne peux pas utiliser les méthodes dans View.) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 26 avril 2010 Share Posté(e) 26 avril 2010 Il ne se passe rien parce qu'il faut dire au provider de ton Widget de rafraîchir ce Widget :/ Il faut que tu nous dises à quel moment tu utilises ce code Lien vers le commentaire Partager sur d’autres sites More sharing options...
jimmy Posté(e) 21 août 2010 Share Posté(e) 21 août 2010 Bonsoir, Je me permet de reprendre se post car j'essai justement de changer dynamiquement le background du linearLayout de mon widget mais je ne sais pas comment mis prendre. Certe il y a la methode setBackgroundDrawable qui réalise se que je veux (en théorie) mais je ne sais pas comment récupéré mon linearLayout pour lui appliquer. Pour les acitivity il y a le findviewbyid mais cette methode n'existe pas pour les widget :( Merci pour votre aide, je suis débutant et n'ai pas encore tous les concepts. 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.