I am specifying a button's width as 600dp in values/dimens.xml
, but when I deploy and run it on my Nexus 5 it takes up all the available width in the landscape orientation.
My activity only runs in landscape mode, as I have specified in manifest file. The layouts are in the layouts
directory. The images are in the 'drawable-xxhdpi' directory and they appear fine, but everything that I specify in dp
is magnified.
The previews in Android Studio and the actual device seem to behave as they have 600dp max width when it should be 1920. Why is this, and how can I fix it?
The physical width of the display on a landscape Nexus 5 is 1920 pixels, However, 600dp != 600px. The Nexus 5 has a display density of ~445 ppi. A dp is pixels only at medium density (160 ppi). Thus, everything specified in dp will be scaled by a factor of about 445/160 = 2.78125. So 600dp is actually about 1669 pixels. That should account for most of what you're seeing.
There may also be something about your layout that is stretching the button. If you post your layout xml, we might be able to provide more info.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With