Axarydax
Axarydax

Reputation: 16603

Android Layout for 720x720 BlackBerry screen

My BlackBerry Q5 can run Android applications and I'd like to optimize one of my existing apps for its screen. The resolution is 720x720, but the runtime also inserts a bar in the bottom of the screen, so usable resolution for Android app is 720x620 pixels, so I guess that's what the phone reports to Android app as the resolution.

Is there a way to make a layout that will apply only to 720x620px screens? The documentation for supporting multiple screen sizes says that there are w<N>dp and h<N>dp qualifiers, but they use scaled dp units and also means minimum available width in dp units, so they would not be useful in here.

Upvotes: 2

Views: 1237

Answers (2)

vfede
vfede

Reputation: 106

I needed to solve your problem too, this is my solution.

The Q5 and Q10 screen density is xhdpi (scale factor of 2.0) so max screen size is 720x720px / 2.0 = 360x360dpi

Quoting from the documentation, Table 2, "Available height" row:

Specifies a minimum available screen height, in "dp" units at which the resource should be used
[...]
When your application provides multiple resource directories with different values for this configuration, the system uses the one closest to (without exceeding) the device's current screen height.
[...]
Added in API level 13.

Based on these, for Androids with API>=13 (including Blackberrys) you can put your Blackberry specific layout in "layout-h240dp" folder and all the others in "layout-h361dp"

Blackberry height is greater than 240dp and less than 361dp, so it will use layouts in h240dp folder.

Notes:
- If you don't add the 361dp folder, the 240dp folder will be used for every device with height greater than 240dp.
- I choose 240dp because it is a common minimium dimension for today devices.
- 309dp should work too as it less than 310dp (minimum height of BB's screen with bars)
- For Androids with API<13 you have to put a default layout in the generic "layout" folder, because the previous "h*dp" folders are ignored. if default layout is missing, the app should crash.

Upvotes: 3

Justin Jasmann
Justin Jasmann

Reputation: 2353

I don't mean to turn this into a full-blown answer, but I need the extra space.

For your assets, if you'd like to target them specifically for Q5 or Q10 devices, place them in the drawable-square folder. This changed from drawable-small-square due to deprecation.

If you plan on deploying to OS 10.2.1+ devices and don't want that back-bar to show by default, you can add a small configuration file to your app so that the system knows not to show it.

For more information on that, take a look at my blog:

Android Developers: Eliminate the Back-Bar in Your 10.2.1. App

Upvotes: 0

Related Questions