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);        

}
4

2 回答 2

1

你可以用这种方式处理它

1 - onSaveInstanceState() 回调

例如:使用 Save Instance State http://android-er.blogspot.in/2011/09/onsaveinstancestate-and.html保存 Android Activity 状态

2- onRetainNonConfigurationInstance() 与 getLastNonConfigurationInstance()

例如:getLastNonConfigurationInstance()

3 - 活动中的 android:configChanges 和 orverirding onConfigChange 活动 ex:http: //developer.android.com/resources/articles/faster-screen-orientation-change.html 活动在轮换时重启 Android

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

根据您的需要选择一种方式...

于 2012-05-25T05:20:09.380 回答
0

如果您不想影响布局,那么只需将此标签添加到您的 xml 文件中。

android:configChanges="orientation|keyboardHidden"

这将有助于更改您的布局,但不会影响其他任何事情。

  <activity
        android:label="@string/app_name"
        android:name=".YourActivity" android:configChanges="orientation|keyboardHidden"/>
于 2012-05-25T05:16:00.020 回答