Screen Density: essentie, pixeldichtheid in Android

Auteur: IT Sectr Gepubliceerd: 2026-02-25 Leestijd: 6 min

We leggen de essentie van Screen Density (Density Buckets) in Android uit — de classificatie van schermen op pixeldichtheid: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Screen Density bepaalt hoeveel fysieke pixels er in één inch scherm passen en beïnvloedt direct hoe afbeeldingen en de interface op verschillende apparaten worden weergegeven. Volgens de Google Android Compatibility Definition (2025) ondersteunt Android 6 primaire Density Buckets en tot 8 extra voor opvouwbare apparaten.

Belangrijkste punten

  • Screen Density — het aantal fysieke pixels per inch (PPI). Android groepeert schermen in Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • De basisbucket — mdpi (160 dpi). Alle andere worden relatief berekend: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • Bronnen voor verschillende dichtheden worden opgeslagen in gekwalificeerde mappen res/drawable-{density}.
  • Volgens Android Studio (2025) is de meest voorkomende dichtheid op moderne apparaten xxhdpi (420+ dpi, 3×).
  • Screen Density is onafhankelijk van de schermresolutie — twee apparaten met dezelfde resolutie kunnen een verschillende dichtheid hebben.

Wat is Screen Density?

Screen Density (schermdichtheid) — het aantal fysieke pixels per inch scherm (ppi — pixels per inch, of dpi — dots per inch). Android gebruikt het concept Density Buckets — groepen schermen met vergelijkbare dichtheid waarvoor dezelfde schalingsfactoren worden toegepast. In tegenstelling tot resolutie (aantal pixels in breedte en hoogte), bepaalt dichtheid de fysieke grootte van een pixel op het scherm. Volgens Google Pixel Team (2025) is de dichtheid van moderne vlaggenschepen 450-550 ppi, wat overeenkomt met de buckets xxhdpi-xxxhdpi.

Geschiedenis en evolutie van Density Buckets

Het Density Buckets-systeem verscheen in Android 1.6 Donut (2009) met de eerste apparaten op 160 dpi (mdpi). Met de toename van de schermresolutie werden nieuwe buckets toegevoegd: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Elke nieuwe bucket weerspiegelde een 1.5- of 2-voudige toename in dichtheid ten opzichte van de vorige. Volgens Android Open Source Project (2025) heeft momenteel 96% van de actieve Android-apparaten een dichtheid van hdpi tot xxxhdpi.

Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi

Density Buckets — dichtheidsbereiken gedefinieerd door Google voor het groeperen van Android-schermen. De basisbucket — mdpi (160 dpi). De schalingsfactor (scale factor) geeft aan hoeveel keer de bron voor een bepaalde bucket groter is dan voor mdpi. Bijvoorbeeld, xhdpi (2×) betekent dat de afbeelding 2 keer breder en hoger moet zijn dan de mdpi-versie. Volgens Android Studio Resource Manager (2025) is xxhdpi de meest voorkomende bucket onder actieve apparaten (38% van de markt), gevolgd door xhdpi (28%).

BucketDPI-bereikScaleVoorbeeldapparaatMarktaandeel (2025)
ldpi120 dpi0.75×Oude budgetapparatenMinder dan 1%
mdpi120-160 dpiHTC Dream (G1), 7″ tablets3%
hdpi160-240 dpi1.5×Samsung Galaxy S2, Nexus 412%
xhdpi240-320 dpiGoogle Nexus 5, Moto G28%
xxhdpi320-480 dpiSamsung Galaxy S8, Pixel 338%
xxxhdpi480-640 dpiSamsung Galaxy S24 Ultra, Pixel 9 Pro18%

Pixeldichtheid vs schermresolutie: wat is het verschil

Schermresolutie — het totale aantal pixels in breedte en hoogte (bijv. 1080×2400). Schermdichtheid — het aantal pixels per inch. Twee apparaten met dezelfde resolutie kunnen een verschillende dichtheid hebben als de fysieke schermafmetingen verschillen. Bijvoorbeeld, een 6-inch telefoon met een resolutie van 1080×2400 heeft een dichtheid van ongeveer 440 dpi (xxhdpi), en een 5-inch telefoon met dezelfde resolutie — ongeveer 530 dpi (xxxhdpi). Dit is het cruciale verschil: de interface moet zich aanpassen aan de dichtheid, niet aan de resolutie, anders zijn elementen te klein op apparaten met een hoge dichtheid.

Resourcekwalificatoren voor dichtheid in Android

Android gebruikt qualifiers in de namen van res-mappen om bronnen voor een specifieke schermdichtheid te laden: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. Bij het opstarten van de app selecteert Android de bronnen uit de map die het beste past bij de dichtheid van het apparaat. Als er geen exacte overeenkomst is, neemt het systeem de dichtstbijzijnde bucket of schaalt de bron van een lagere dichtheid. Volgens Android Docs (2025) zijn dichtheidskwalificatoren niet nodig voor vectoren (VectorDrawable) — ze worden automatisch geschaald.

XML

/res/
    drawable-mdpi/
        icon_app.png  (48x48 px)
    drawable-hdpi/
        icon_app.png  (72x72 px)
    drawable-xhdpi/
        icon_app.png  (96x96 px)
    drawable-xxhdpi/
        icon_app.png  (144x144 px)
    drawable-xxxhdpi/
        icon_app.png  (192x192 px)

In deze structuur bevat elke map hetzelfde pictogram, maar in een andere fysieke grootte in pixels. De basisgrootte van 48×48 pixels voor mdpi wordt vermenigvuldigd met de schalingsfactor voor elke bucket. Android selecteert automatisch het benodigde bestand op basis van de DisplayMetrics.density van het apparaat. Voor VectorDrawable (XML-formaat) is één bestand in drawable/ voldoende — het systeem schaalt het zonder kwaliteitsverlies.

Pixelberekening voor elke dichtheid

Grootteberekening van de afbeelding voor elke dichtheid is gebaseerd op een eenvoudige formule: grootte in mdpi × scale factor. Als een pictogram in mdpi 48×48 px groot is, dan is het voor hdpi 72×72 px (48 × 1.5), voor xhdpi — 96×96 px (48 × 2), voor xxhdpi — 144×144 px (48 × 3), voor xxxhdpi — 192×192 px (48 × 4). Volgens Material Design Guidelines (2025) wordt deze formule toegepast voor alle rasterbronnen: pictogrammen, achtergronden, afbeeldingen en 9-patch.

BucketScaleGrootte mdpi (px)Grootte in bucket (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Beste praktijken voor het voorbereiden van bronnen voor alle dichtheden

Correcte voorbereiding van bronnen voor Density Buckets omvat vijf belangrijke regels. Ten eerste, gebruik VectorDrawable voor eenvoudige pictogrammen — dit elimineert de noodzaak voor vijf kopieën. Ten tweede, exporteer voor rasterafbeeldingen alle dichtheden tegelijk uit ontwerptools (Android Studio Asset Studio genereert automatisch). Ten derde, vermijd het plaatsen van afbeeldingen in drawable/ zonder kwalificator — het systeem zal schalen met kwaliteitsverlies. Ten vierde, test op een apparaat met een andere dichtheid dan uw primaire — de emulator maakt het mogelijk de dichtheid te wijzigen. Ten vijfde, gebruik WebP in plaats van PNG — volgens Google (2025) biedt WebP 25-35% kleinere bestandsgrootte bij dezelfde kwaliteit.

  • VectorDrawable — het voorkeursformaat voor pictogrammen en eenvoudige illustraties. Eén XML-bestand vervangt 5 PNG's.
  • Android Studio Asset Studio — automatische generatie van bronnen voor alle dichtheden uit SVG of PNG.
  • WebP met lossless — het optimale formaat voor foto's. 30% kleiner dan PNG zonder kwaliteitsverlies.
  • 9-patch — voor schaalbare achtergronden. Eén bestand werkt op alle dichtheden met correct ingestelde uitrekgebieden.
  • Adaptive Icons — pictogramformaat voor API 26+. Maakt afzonderlijke instelling van foreground en background voor verschillende dichtheden mogelijk.

Veelgestelde vragen

Wat betekent mdpi in Android?

mdpi (medium-density pixel-independent) — de standaard Density Bucket van Android met een dichtheid van 160 dpi. Alle andere buckets worden berekend ten opzichte van mdpi: hdpi — 1.5×, xhdpi — 2× enzovoort. mdpi komt overeen met één fysieke pixel per density-independent pixel (dp). Ontwerpers gebruiken mdpi als referentie bij het maken van ontwerpen.

Hoe kom ik de schermdichtheid van een Android-apparaat te weten?

Gebruik DisplayMetrics: getResources().getDisplayMetrics().density retourneert de schalingsfactor (1.0 voor mdpi, 3.0 voor xxhdpi). Voor programmatische bepaling van de bucket, roep getResources().getConfiguration().densityDpi aan. In Android Studio is er ook Device Explorer die de densityDpi toont voor het aangesloten apparaat.

Moet ik bronnen voorbereiden voor alle dichtheden?

Technisch — ja, maar met kwaliteitsverlies. Als een bron alleen in drawable-xxhdpi bestaat, wordt deze op een mdpi-apparaat 3 keer verkleind — de afbeelding wordt wazig. Als een bron alleen in mdpi is, wordt deze op xxhdpi vergroot — er treedt pixelvorming op. Aanbevolen wordt om ten minste voor xhdpi, xxhdpi en xxxhdpi voor te bereiden — dit dekt 84% van de actieve apparaten (2025). Voor VectorDrawable is één bestand zonder kwalificator voldoende.

Samenvatting

  • Screen Density — het aantal fysieke pixels per inch (dpi/ppi). Android groepeert schermen in Density Buckets: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • De basisbucket mdpi = 160 dpi. Alle andere worden berekend als mdpi × scale factor.
  • Bronnen voor verschillende dichtheden worden opgeslagen in gekwalificeerde mappen res/drawable-{bucket}.
  • xxhdpi — de meest voorkomende bucket (38%), gevolgd door xhdpi (28%) en xxxhdpi (18%).
  • VectorDrawable vervangt 5 rasterbestanden en schaalt zonder kwaliteitsverlies.
  • Gebruik WebP in plaats van PNG om 30% verkeer en opslagruimte te besparen.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook