gpt4 book ai didi

java - 不允许多次按下按钮

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

我正在使用 Camera2 API 构建一个相机应用程序,这对于 Android 开发来说相对较新。一切都在工作,只是解决了错误。但我有一个切换摄像头按钮,可以从前置摄像头切换到后置摄像头,反之亦然。如果用户连续按下该按钮,应用程序将会崩溃。尝试对其进行设置,使其在再次使用按钮之前完成所需执行的所有操作。

我已将按钮设置为启用,但按下后,它会禁用该按钮,直到一切完成,然后重新启用,但这似乎不起作用:

//The button to switch the camera to front and back camera.
mChangeCamera = (ImageButton) findViewById(R.id.change_camera);
mChangeCamera.setEnabled(true);
mChangeCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mChangeCamera.setEnabled(false);
closeCamera();
// stopBackgroundthread();
if (mTextureView.isAvailable()) {
setUpCamera(mTextureView.getWidth(), mTextureView.getHeight());
transformImage(mTextureView.getWidth(), mTextureView.getHeight());
connectCamera();

} else {
mTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
}

mChangeCamera.setEnabled(true);
}
});

必须有一种简单的方法来做到这一点,但不能从搜索中找到任何内容。有人知道如何将其设置为在用户按下按钮时不崩溃吗?

最佳答案

好吧,所以我最终弄清楚了如何做到这一点。您可以使用具有发布延迟的处理程序,如下所示:

 mChangeCamera = (ImageButton) findViewById(R.id.change_camera);
mChangeCamera.setEnabled(true);
mChangeCamera.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {
mChangeCamera.setEnabled(false);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mChangeCamera.setEnabled(true);
}
},1000);
closeCamera();
// stopBackgroundthread();
if (mTextureView.isAvailable()) {
setUpCamera(mTextureView.getWidth(), mTextureView.getHeight());
transformImage(mTextureView.getWidth(), mTextureView.getHeight());
connectCamera();

} else {
mTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
}


}
});

关于java - 不允许多次按下按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60229554/

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