Ik heb mijn applicatie gemaakt met de hoogte en breedte gegeven in pixels voor een Pantech toestel met een resolutie van 480x800.
Ik moet de hoogte en breedte omzetten voor een G1-toestel. Ik dacht dat het omzetten in dp het probleem zal oplossen en dezelfde oplossing zal bieden voor beide apparaten.
**Is er een makkelijke manier om pixels om te zetten naar dp? Iemand suggesties?
// Converts 14 dip into its equivalent px
float dip = 14f;
Resources r = getResources();
float px = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
dip,
r.getDisplayMetrics()
);
Je moet dp gebruiken zoals je pixels zou gebruiken. Dat is alles wat ze zijn; display onafhankelijke pixels. Gebruik dezelfde getallen die u zou gebruiken op een scherm met gemiddelde dichtheid, en de grootte zal op magische wijze correct zijn op een scherm met hoge dichtheid.
Het lijkt er echter op dat je de fill_parent optie nodig hebt in je layout ontwerp. Gebruik fill_parent als je wilt dat je view of control uitdijt tot alle resterende ruimte in de parent container.
PX
en DP
zijn verschillend, maar vergelijkbaar.
DPis de resolutie als je alleen rekening houdt met de fysieke grootte van het scherm. Als je
DPgebruikt zal het je layout schalen naar andere schermen van vergelijkbare grootte met verschillende
pixel` dichtheden.
Soms wil je echter pixels
, en als je te maken hebt met afmetingen in code heb je altijd te maken met echte pixels
, tenzij je ze omrekent.
Dus op een android toestel, normaal formaat hdpi
scherm, is 800x480 is 533x320
in DP
(geloof ik). Om DP
om te zetten in pixels /1,5
, moet je *1,5
terug omzetten. Dit is alleen voor de ene schermgrootte en dpi
, het zou veranderen afhankelijk van het ontwerp. Onze artiesten geven mij echter pixels
en ik reken om naar DP
met de bovenstaande 1.5
vergelijking.