Android - common methods for scaling screen layouts

I understand that this topic was covered to death, and I read the official and unofficial developer guides, so I know the theory. But I'm still not sure which way to go in order for the app to look good on multiple screen sizes. My application is a simple navigation application designed only for portraiture. At this stage, I am not interested in creating different designs for landscape or multi-panel screens for tablets, etc. I just want each screen to scale up / down so that it looks proportional to the size of the screen on which it is displayed, i.e. text and images are up / down as needed. I developed an application for the classic 480x800 hdpi device that looks great, I just want it to look proportionate for the Galaxy S3 / Nexus 7, etc. I already follow these recommendations:

  • Using RelativeLayouts
  • Using DP blocks for padding / fields
  • Using SP Blocks for Fonts
  • Using 9-patch images for buttons

However, I find that it still looks small and a bit lost in the middle of the screen on larger devices. In particular, my main menu screen is a grid of 6 image buttons that I cannot get to scale well. I do not want to have multiple copies to support the same screen (regular / large / xlarge), I just want one layout. I considered the following:

  • Using normal / value-large value folders, etc. for storing XML files with DP / SP values ​​for image / text sizes
  • Changing RelativeLayouts to LinearLayouts with weights (although I initially struggled with LinearLayouts and changed RelativeLayouts

Is there one of these valid approaches, or is there a better approach?

+7
source share
1 answer

Personally, I would go with the first option. While this will work well for phones, it will make the layout look somewhat bloated on tablets. Consequently, another approach would be to create separate layouts for tablets and place them in the layout-large and layout-xlarge folders for a 7 "and 10" tablet, respectively.

+1
source

All Articles