gpt4 book ai didi

java - 在android上屏幕旋转后恢复方法

转载 作者:行者123 更新时间:2023-12-01 04:12:05 24 4
gpt4 key购买 nike

我读到,屏幕旋转后,会再次创建 Android Activity 。我了解如何恢复 View ,但我不知道是否可以从屏幕旋转后停止方法的位置开始。

最佳答案

屏幕旋转后恢复。

以最简单的形式,您可以保存在 onSaveInstanceState 方法中重新创建所需的内容。因此,对于您的基本手电筒,您可以保存灯光的状态。对于更复杂的应用程序,您可以保存所有全局字段。手电筒有一个全局变量isFlashOn。

private boolean isFlashOn = false;

在onSaveInstanceState中保存手电筒的状态

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(ISON, isFlashOn);
}

然后在 oncreate 方法中重新创建全局变量。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
isFlashOn = savedInstanceState.getBoolean(ISON);
}

稍后在onstart方法中处理isFlashOn。该手电筒通过单击打开,因此我更改 isFlashOn 的状态并调用单击处理程序。

@Override
protected void onStart() {
super.onStart(); // Always call the superclass method first

if (camera == null) {
camera = Camera.open();
}
//flip the isflashon and then click the button
isFlashOn = !isFlashOn;
onClick(null);
}

处理点击。

public void onClick(View arg0) {
ImageButton i = (ImageButton) findViewById(R.id.imageButton1);

final Parameters p = camera.getParameters();
if (isFlashOn) {
i.setImageResource(R.drawable.ic_launcher);
isFlashOn = false;
p.setFlashMode(Parameters.FLASH_MODE_OFF);
} else {
i.setImageResource(R.drawable.ic_launcher2);
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
// Set flag to true
camera.startPreview();
isFlashOn = true;
}

祝你好运

关于java - 在android上屏幕旋转后恢复方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com