Не меняйте фон при изменении ориентации - PullRequest
2 голосов
/ 15 сентября 2011

В моем приложении у меня есть изображение в качестве фона.Когда приложение находится в портретном режиме, это нормально.Но когда он находится в ландшафтном режиме, изображение поворачивается и растягивается.

Я знаю, что мы можем использовать папку layout-land, но с этим решением все мои макеты будут в два раза только для изображения (не очень логично ..).

Есть ли другое решение?

PS: Мое изображение - просто углеродная текстура, поэтому решение для предотвращения его поворота с ориентацией будет в порядке.

РЕДАКТИРОВАТЬ:

hotveryspicy, ваше решение работает, НОЕсть действия, которые имеют свойство android: configChanges = "direction" (в Манифесте), и это не работает для них.Как решить эту проблему?

На самом деле, я использую это свойство для сохранения состояния при изменении ориентации, но это не очень хороший способ сделать это.Мне нужно использовать onSaveInstanceState для этого.

А пока есть решение, которое позволяет мне оставить это плохое решение?

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

да, сначала проверьте ориентацию в onCreate ()

Display mDisplay= activity.getWindowManager().getDefaultDisplay();
int width= mDisplay.getWidth();
int height= mDisplay.getHeight();

if(width>height)
{
//Landscape
//set landscape compatible image 
}
else
{
//Portrait
//set portrait compatible image
}
1 голос
/ 15 сентября 2011

Сработает ли это, если вы поместите альтернативную версию фонового изображения в папку drawable-land res? Таким образом, вы все равно можете использовать те же файлы макетов и ссылаться на @drawable/background в них.

0 голосов
/ 15 сентября 2011

Я сомневаюсь, что было бы возможно сделать то, что вы описали.Единственное возможное решение (компоновка), которое вы уже исключили.Думаю, это единственный способ сделать это.

...