2011-07-31 4 views
0

В моем приложении на каждом экране есть фоновое изображение. Я хочу использовать одно и то же изображение для портрета и пейзажа, но чтобы он выглядел прилично, мне нужно повернуть изображение на 90 градусов, когда оно будет в ландшафте, чтобы оно не растянулось, чтобы заполнить экран.Android rotate imageview в файле макета

Мое решение состояло в том, чтобы просто создать две копии изображения для одного портрета, которое я положил в drawable-port, и один для пейзажа, который я положил в рисовальную землю. Теперь, когда у меня много разных фонов, мое решение просто вставить вторую копию изображения в мой apk приводит к тому, что размер apk будет намного больше, чем необходимо.

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

Спасибо за помощь!

ответ

0

Я не могу придумать способ сделать это в XML. Но если вы создали пользовательский класс, унаследованный от какой просмотра вы подаете предысторию (скажем, RelativeLayout), то вы могли бы сделать что-то вроде

@Override 
protected void onSizeChanged(int newWidth, int newHeight, int oldWidth, int oldHeight) { 
    if (newWidth > newHeight) { // landscape 
     // rotate the background 
    } 
} 

Таким образом, у вас есть только один раз осуществить поворот и все ваши взгляды будут автоматически вращать их фоны.