Home » Android » android – How can I use 2 different background between landscape mode and portrait mode

android – How can I use 2 different background between landscape mode and portrait mode

Posted by: admin June 15, 2020 Leave a comment

Questions:

I have an android application, I would like to know if I can have 1 layout (1 layout xml file) for both landscape and portrait mode. But I want a different background for each mode? Is that possible? Do I need 2 xml file points to different background image? Or I can achieve what I want using 1 xml file?

Thank you.

How to&Answers:

If you’re willing to use code to accomplish this, you might try inserting something like

View view = (View) findViewById(R.id.background_carrying_view);
int orientation = getResources().getConfiguration().orientation;
if(orientation == Configuration.ORIENTATION_LANDSCAPE) {
    view.setBackgroundResource (R.drawable.background_land);
} else {
    view.setBackgroundResource (R.drawable.background_port);
}

into your onCreate() and/or onConfigurationChange().

With this method, you would use the same layout for both landscape and portrait.

Answer:

I have achieved the same by creating drawable-land-hdpi folder and copying my landscape background into it.

I did not want to change my code, I just have one XML layout file and two different background.jpg images in two folders drawable-land-hdpi and drawable-hdpi.