2009-07-12 3 views
0

J'ajoute un écran de démarrage à une application compacte .NET et je me demande s'il existe un moyen élégant d'accéder au bitmap correct (basé sur la résolution d'écran) pour l'écran de démarrage.Élimination de l'instruction Ugly Switch lors de la récupération des ressources

par exemple. Mes propriétés bitmap de ressources sont nommées comme ça ...

Splash640480

Splash480640

Splash480480

Splash320240

Splash240320

Splash240240

... etcJ'ai essayé de créer un dictionnaire générique mais le chargement de la librairie de génériques sur un Pocket PC est assez lent - il a fallu 6 secondes avant que l'écran de démarrage s'affiche contre 2 secondes en assignant simplement un bitmap.

La réflexion serait-elle une option rapide et si oui, quelle est la meilleure façon de s'y prendre?

+1

Le chargement d'un dictionnaire ne devrait pas prendre plus de 6 secondes. Êtes-vous en train d'extraire tous les bitmaps de différentes tailles et de les mettre dans votre dictionnaire? Cela expliquerait les 6 secondes. – MusiGenesis

Répondre

2
System.Resources.ResourceManager resources = 
    new System.Resources.ResourceManager(typeof(YourObject)); 
Bitmap bmp = (System.Drawing.Bitmap)resources.GetObject("Splash640480"); 

Edit:

Retrait de la suggestion de réduire la taille de l'image.

+1

Pas une bonne idée dans Windows Mobile - La mémoire bitmap est allouée dans une mémoire vidéo dédiée, qui est généralement de 4 Mo ou même 1 Mo (au lieu de 32 Mo théoriquement disponible pour chaque processus). En général, vous ne voulez pas créer de bitmaps plus grand que ce dont vous avez réellement besoin. – MusiGenesis

+1

Ha! bon à savoir –

Questions connexes