IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[Android] AppWidget personnalisable


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut [Android] AppWidget personnalisable
    Bonjour à tous !

    Je cherche à créer un AppWidget que l'utilisateur peut personnaliser. Pour l'instant, j'actualise l'apparence à chaque AppWidget.onUpdate et lors de l'allumage de l'écran, mais il y a parfois des petits bugs, ou des courts instants ou on voit l'apparence par défaut...

    Y a-t-il une meilleure solution que celle que j'utilise (code ci-dessous) ? En décompillant une application, j'ai vu qu'elle utilisait un Canvas, mais le code décompillé étant illisible, je n'en sais pas vraiment plus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public static void updateApparence(Context context)
        {
            AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
     
            for(int i = 0 ; i < widgetLayoutIds.length ; i++)
            {
                int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, appWidgetProvidersClass[i]));
     
                RemoteViews views = new RemoteViews(context.getPackageName(), widgetLayoutIds[i]);
     
                views.setInt(R.id.widget_background,    "setBackgroundColor",   prefs.getInt(SettingsApparence.BACKGROUND_COLOR,    0xFFFFFFFF));
                views.setInt(R.id.matiere, "setTextColor", prefs.getInt(SettingsApparence.COULEUR_MATIERE, 0xFF666666));
                views.setInt(R.id.horaires, "setTextColor", prefs.getInt(SettingsApparence.COULEUR_HORAIRES, 0xFF888888));
                views.setInt(R.id.salle, "setTextColor", prefs.getInt(SettingsApparence.COULEUR_SALLE, 0xFF888888));
     
                Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.settings_icon);
                views.setBitmap(R.id.settings, "setImageBitmap", changeImageColor(bm, prefs.getInt(SettingsApparence.COULEUR_CLE, 0xFF000000)));
     
                bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.emploi_du_temps_icon);
                views.setBitmap(R.id.emploi_du_temps, "setImageBitmap", changeImageColor(bm, prefs.getInt(SettingsApparence.COULEUR_CALENDRIER, 0xFF000000)));
     
                appWidgetManager.updateAppWidget(appWidgetIds, views);
            }
        }
    Merci de m'aider !

    Syrll

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Finalement, j'ai enregistré le RemoteViews en tant que variable globale, je le modifie quand l'apparence ou le texte doit changer, puis j'actualise le widget grâce à lui. Plus aucun bug !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Investir l'écran d'accueil Android avec les AppWidgets
    Par MathiasSeguy dans le forum Android
    Réponses: 1
    Dernier message: 30/10/2017, 16h16
  2. Réponses: 8
    Dernier message: 30/04/2013, 09h52
  3. Personnaliser une TabHost Android
    Par ihebweb dans le forum Android
    Réponses: 3
    Dernier message: 13/04/2011, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo