Tja, da gibt es keine einfache Antwort, da die absoluten Auflösungen der Geräte variieren.
Mit Lollipop kommen endlich VectorDrawables, die ohne Qualitätsverlust beliebig skalieren. Das wird bisher meines Wissens aber nicht von der Compatibility Bibliothek unterstützt, so dass ich auf eigene TTF Fonts für Icons und AndroidSVG - einen SVG Parser und -renderer - setze. Damit brauche ich mich nur um extrem wenige skalierte Grafiken kümmern (z.B. die Icons für den App-Drawer). Dieser Ansatz trägt aber nicht für alle Arten von App. (Bei schnellen Actionspielen wäre das zB einfach zu langsam, dort werden sogar die einzelnen Grafiken für Sprites etc. zu einem Texture Atlas zusammengerechnet, aber das ist hier nicht weiter relevant.)
Eine ganz gute Darstellung von eigenen Icon Fonts findest du hier, im wesentlichen baut man (recht komfortabel) aus Schwarz/Weiße SVG Dateien einen eigenen Font zusammen, dessen Buchstaben man dann als Beschriftung von Buttons hernehmen kann. In meiner aktuellen App habe ich so z.B. die Symbole für die Buttons im Spiel (Glühbirne, Mülleimer, Undo, Redo, ...) erstellt, was den Vorteil hat, dass sie genauso groß sind wie die Zahlen auf den anderen Buttons (gleiche Fontgröße) und verlustfrei skalieren.
AndroidSVG nutze ich, um ein SVG als Hintergrundbild des Startmenüs zu skalieren. Das mache ich aber auch genau nur einmal beim allerersten App-Start und lege dann ein PNG in exakt der richtigen Größe ab. Es ist schneller und batteriefreundlicher ist, das PNG zu laden, als jedesmal das SVG zu rendern (was Geschwindigkeitsmäßig aber schon hinhauen würde). Dies Vorgehen hat sich auch bereits in einem (mittlerweile nicht mehr aktiven) Projekt bewährt.
HTH
D. Zielke
Aktuelles Entwicklungsprojekt: Sudoku Dojo Free
Ich freue mich über Tester/innen.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.