getSize () wird in älteren Versionen von Android OS nicht unterstützt, getWidth () / getHeight () wird nicht weiter unterstützt

8

Also, wie schreibe ich Code, um dies zu berücksichtigen? Ich möchte keine veralteten API-Aufrufe in meinem Code hinterlassen, aber ich möchte auch nicht die Benutzer mit (etwas) älteren Geräten verlieren. Gibt es eine Art von Kompatibilitätseinstellung, die ich implementieren kann?

Rel. Code

%Vor%

vs. die ältere Methode:

%Vor%     
karl_ 03.05.2012, 20:42
quelle

5 Antworten

3

Die beste (und am besten, ich meine die Option, die so ziemlich jedes Mal funktionieren würde) wäre eine Reflexion. Sehen Sie sich die Android Rückwärtskompatibilität Backwards Kompatibilität Richtlinien (aktualisiert mit neuen Ort des Artikels auf Reflexion).

Die Antwort von tyczj funktioniert zwar einwandfrei, solange die veralteten Funktionen noch im SDK enthalten sind, sobald sie entfernt wurden, können Sie sie nicht mehr verwenden oder Ihre App auf einem älteren Gerät ausführen, wenn Sie dagegen noch bauen möchten das neueste SDK.

Reflection löst dieses Problem, indem es die Funktion zur Laufzeit dynamisch erkennt. Das heißt, selbst wenn Sie gegen ICS bauen, können Sie die App auf einem Gerät mit Gingerbread oder Froyo ausführen, solange die minSdkVersion korrekt ist .

    
RivieraKid 03.05.2012, 20:51
quelle
11

Ich habe zwei Funktionen, die den Kontext senden und die Höhe und Breite in Pixeln berechnen.

%Vor%

und

%Vor%     
Jorgesys 23.11.2012 19:02
quelle
3

Sie können so etwas tun

%Vor%     
tyczj 03.05.2012 20:44
quelle
1

Ich denke, etwas, was RivieraKid vorschlägt, wäre etwa so:

%Vor%     
Steve Waring 17.04.2013 14:03
quelle
0

Ich habe normalerweise eine Superklasse, dh. BaseActivity mit einer generischen Methode zum Abrufen eines Punktes mit der aktuellen Bildschirmgröße. Hält alles schön und sauber in der eigentlichen Aktivität.

%Vor%     
slott 22.05.2014 06:53
quelle