2011-11-24 6 views
0

나는 행당 다수의 이미지를 담고있는 테이블을 가지고있다. 행당 이미지 수는 이미지 너비 및 화면 너비에 따라 즉석에서 결정됩니다. 휴대 전화를 정상적으로 사용하면 이미지가 전화 화면에 표시됩니다. 전화 방향이 변경되면 모든 이미지가 같은 행에 나타납니다. 이 경우의 방향 변경을 명시 적으로 처리해야합니까?방향 변경 처리 안드로이드

// get the number of images per column based on the screen 
// resolution 
Display display = getWindowManager().getDefaultDisplay(); 
int screenWidth = display.getWidth(); 

Resources res = getResources(); 
Drawable drawable = res.getDrawable(R.drawable.emo_im_happy); 

numberOfImagesPerRow = screenWidth/(drawable.getIntrinsicWidth() + 10); 

int numberOfRows = (int) Math.ceil(numberOfEmotions 
        /numberOfImagesPerRow); 

답변

3

코드 실행시기에 따라 다르지만 일반적으로 특별한 조치는 필요하지 않습니다.

Android가 방향 변경을 감지하면 시스템이 활동을 다시 만들고 새로운 구성에 따라 모든 것을 만들고 다시 레이아웃하고 다시 렌더링 할 수 있습니다.

android android:configChanges을 사용하는 것은주의 깊게 사용해야하며 구성 변경 후 적절한 리소스를 선택할 때 시스템이 더 잘 수행 할 것이므로 (그 코드를 처리해야합니다. 다른 형태의 구성 변경을위한 경로).

은 참조 : http://developer.android.com/guide/topics/resources/runtime-changes.html

0

예. 한 가지 방법은 AndroidManifest.xml 파일에 <activity>android:configChanges="orientation|keyboardHidden"을 넣은 다음 onConfigurationChanged을 재정 의하여 방향 변경을 감지하는 것입니다.

0

당신이 하나의 행 당신이 의 GridView을 사용할 수 있습니다에 표시되는 이미지의 수를 유지하십시오. 이 방법으로 행 당 열 수를 제어 할 수 있습니다.

<GridView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:isScrollContainer="true" 
     android:numColumns="3" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="10dp" 
     />