Scaling a Phonegap app for different Android screen sizes/densities?

DaveAlden picture DaveAlden · Oct 18, 2013 · Viewed 38.6k times · Source

I have a Phonegap app designed to run on Android phones and tablets. The scale of text and images looks fine on a phone, but too small on a 7” tablet.

Is there a way to set the scale for different screen sizes/densities that works for a Phonegap-based app? For a native Android app, multiple screen layouts (as mentioned in the android docs) would be a solution, but can this be used for a Phonegap-based app?

I could use CSS media queries to set font sizes based on screen size, but I want to scale the entire interface (including images) proportionally.

I tried using the CSS zoom property along with media queries to target specific screen sizes, but this screws up absolute positioning and interferes with the function of UI elements such as iScroll:

@media only screen and (min-device-width : 768px) {
    body{
        zoom: 125%;
    }   
}
@media only screen and (min-device-width : 1024px){ 
    body{
        zoom: 150%;
    }
}

I also tried using the targetdensity-dpi meta viewport property - adjusting it to 120dpi makes the scale better on the 7” tablet, but too large on the phone. Since this is hard-coded in HTML rather than CSS, media queries can’t be used to vary it based on screen size:

<meta name="viewport" 
   content="width=device-width, initial-scale=1, targetdensity-dpi=120dpi">

Here's some screenshots from a testcase Phonegap app:

Answer

Kennedy Nyaga picture Kennedy Nyaga · Dec 28, 2013

Before we give up on phonegap lets try improve it. I was stuck until I solved it using this solution.

Change your viewport to this :

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, target-densitydpi=medium-dpi, user-scalable=0" />

Ref : Phonegap Application text and layout too small