Wie bekomme ich die richtigen DisplayMetrics von einem AppWidget in Android?

9

Ich muss die Bildschirmdichte zur Laufzeit in einem Android AppWidget bestimmen. Ich habe ein HDPI-Emulator-Gerät (AVD) eingerichtet. Wenn Sie ein normal ausführbares Projekt einrichten und diesen Code in die onCreate-Methode einfügen:

%Vor%

Dies gibt "Bildschirmdichte 240" erwartungsgemäß aus.

Wenn ich jedoch ein AppWidget-Projekt einrichte und diesen Code in die onUpdate-Methode einfüge:

%Vor%

Dies gibt "Bildschirmdichte 160" aus. Ich bemerkte, den Debugger anschließen, dass das mDefaultDisplay-Mitglied des Resources-Objekts hier im AppWidget-Fall null ist.

Wenn ich eine Ressource zur Laufzeit mit dem Resources-Objekt erhalte, das von context.getResources () im AppWidget abgerufen wurde, gibt es eine falsche Ressource basierend auf der Bildschirmdichte zurück. Zum Beispiel habe ich ein 60x60px für mdpi und ein 80x80 Zeichen für hdpi. Wenn ich dieses Drawable-Objekt mit context.getResources (). GetDrawable (...) erhalte, wird die 60x60-Version zurückgegeben.

Gibt es eine Möglichkeit, Ressourcen aus dem Kontext eines AppWidget zur Laufzeit korrekt zu behandeln?

Danke!

    
ManicBlowfish 15.04.2010, 06:36
quelle

1 Antwort

1

Das fühlt sich an wie ein Käfer. Wenn Sie ein Beispielprojekt erstellen können, das den Fehler veranschaulicht, veröffentlichen Sie ein Problem im Android-Problemverfolger . Wenn Sie darüber nachdenken, fügen Sie hier einen Kommentar hinzu, der auf das Problem verweist.

    
CommonsWare 15.04.2010, 11:43
quelle