2012-05-25 3 views
2

아래 코드는 이미지 뷰를 동적으로 생성하고 버튼 클릭으로 상위 레이아웃에 추가하는 코드입니다. 이것은 잘 작동합니다. 기기 방향을 바꿀 때 모든 것이 사라집니다. 즉, 기기 방향을 변경하면 이미지를 추가 한 후에 추가 된 이미지가 누락됩니다. 왜? 기기 방향을 변경 한 후에도 이미지를 다시 가져올 수 있습니까?안드로이드에서 장치 방향에 이미지가 동적으로 추가되지 않습니까?

@Override 
public void onClick(View v) { 
    //create an imageview 
    ImageView img = new ImageView(getApplicationContext()); 

    //set layout parameters 
    img.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 

    //set image source 
    img.setImageResource(R.drawable.back); 

    //add imageview to parent layout 
    parentView.addView(img);   

} 

답변

0

레이아웃에 영향을 미치지 않으려면 xml 파일에이 태그를 추가하면됩니다.

android:configChanges="orientation|keyboardHidden" 

레이아웃을 변경하는 데 도움이되지만 다른 모든 것에 영향을주지는 않습니다.

<activity 
     android:label="@string/app_name" 
     android:name=".YourActivity" android:configChanges="orientation|keyboardHidden"/> 
+0

죄송합니다, 정지 화상 누락을 선택합니다. – user1129655

+0

@ user1129655 : 여기에서 시도하십시오 http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android – Bhavin

+1

에뮬레이터를 체크인하는 경우 android : configChanges = "orientation"이 작동하지 않습니다. keyboardHidden | orientation –

1

당신은 thises의 방법에 의해

1을 hanlde 수 - onSaveInstanceState() 콜백

예 : getLastNonConfigurationInstance()와 Saving Android Activity state using Save Instance State http://android-er.blogspot.in/2011/09/onsaveinstancestate-and.html

2 onRetainNonConfigurationInstance()를

예 : getLastNonConfigurationInstance()

3 - 안드로이드 : acivity 전에서 menifest 및 onConfigChange을 orverirding에 configChanges가 : http://developer.android.com/resources/articles/faster-screen-orientation-change.html Activity restart on rotation Android

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

당신의 필요에 따라 하나의 방법 ...

+0

위의 설명에 따라 이미지를 복원해야하는 경우 2 옵션을 사용하면 onCreate에서 getLastNonConfigurationInstance()를 얻을 수 있지만 null을 잊어 버리지는 않습니다. –

+0

http://blog.andresteingress.com/2011/09/27/fighting-orientation-changes-in-android/ –

관련 문제