2011-09-15 5 views
2

내 응용 프로그램에는 배경 이미지가 있습니다. 응용 프로그램이 세로 모드에 있으면 괜찮습니다. 그러나 풍경 모드 일 때 이미지가 변하고 늘어납니다.방향을 변경할 때 배경을 변경하지 마십시오.

나는 우리가 layout-land 폴더를 사용할 수 있다는 것을 알고 있지만,이 솔루션을 사용하면 모든 레이아웃이 단지 이미지를위한 두 배가 될 것이다.

다른 해결책이 있습니까?

추 신 : 내 이미지는 탄소 텍스처입니다. 방향을 바꾸지 못하게하는 해결책은 괜찮습니다.

편집 :

hotveryspicy, 솔루션이 작동하지만,이 재산 안드로이드이 활동은 다음과 같습니다 (매니페스트에서) configChanges = "오리엔테이션"이, 그리고 그들을 위해 작동하지 않습니다. 어떻게 해결할 수 있을까요?

실제로 오리엔테이션이 바뀌면 상태를 저장하기 위해이 속성을 사용하지만 좋은 방법은 아닙니다. 그것을 위해 onSaveInstanceState를 사용해야합니다.

한편,이 나쁜 해결책을 유지할 수있는 해결책이 있습니까?

답변

0

나는 당신이 묘사 한 것을 할 수 있을지 의심 스럽다. 당신이 이미 배제했던 유일한 해결책 (레이아웃 - 땅). 그것은 내가 추측하는 그것에가는 유일한 길이다.

2

나중에, 에서 onCreate()는 drawable-land 고해상도 폴더에 배경 이미지의 대체 버전을 배치하는 경우

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

android : configChanges = "orientation"속성이있는 액티비티에서는 작동하지 않습니다. – HerrM

+0

참조 http://stackoverflow.com/questions/7295804/is-that-possible-to-check-was-oncreate-called- 때문에 오리 엔테이션 변경/7397085 # 7397085 –

1

이 트릭을 할 것인가에 먼저 확인 방향? 이 방법으로 동일한 레이아웃 파일을 계속 사용할 수 있으며 @drawable/background을 참조 할 수 있습니다.

관련 문제