2009-07-12 4 views
0

Ich füge einen Begrüßungsbildschirm zu einer .NET-Anwendung und frage mich, ob es eine elegante Möglichkeit gibt, auf die richtige Bitmap (basierend auf Bildschirmauflösung) für den Begrüßungsbildschirm zuzugreifen.Entfernen hässlicher Switch-Anweisung beim Abrufen von Ressourcen

z.B. Meine Ressource Bitmap-Eigenschaften sind wie folgt ...

Splash640480

Splash480640

Splash480480

Splash320240

Splash240320

Splash240240

genannt ... etc

Ich habe versucht, ein generisches Wörterbuch zu machen, aber das Laden der Generika-Bibliothek auf einem Pocket PC ist ziemlich langsam - es dauerte 6 Sekunden vor dem Startbildschirm vs 2 Sekunden angezeigt, wenn Sie einfach eine Bitmap zuweisen.

Wäre die Reflektion eine schnelle Option und wenn ja, wie geht man am besten vor?

+1

Das Laden eines Wörterbuchs sollte nicht 6 Sekunden dauern. Ziehen Sie tatsächlich alle Bitmaps unterschiedlicher Größe heraus und legen sie in Ihr Wörterbuch ein? Das würde die 6 Sekunden erklären. – MusiGenesis

Antwort

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

Edit:

Entfernen der Vorschlag, das Bild zu verkleinern.

+1

Keine gute Idee in Windows Mobile - Bitmap-Speicher wird in dediziertem Video-RAM zugewiesen, das normalerweise 4 MB oder sogar 1 MB beträgt (anstelle der theoretisch für jeden Prozess verfügbaren 32 MB). Im Allgemeinen möchten Sie Bitmaps nicht größer als das, was Sie tatsächlich benötigen, erstellen. – MusiGenesis

+1

Ha! gut zu wissen –

Verwandte Themen