gpt4 book ai didi

android - Android 中的时间延迟

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:54 24 4
gpt4 key购买 nike

所以我想在我的应用中创建一个“频闪”灯光效果。

为此,我需要一个时间延迟,其中一个为 100 毫秒,另一个为 20 毫秒。

这是我正在使用的代码。

Thread timer = new Thread();
long longTime = 100;
long shortTime = 20;
for (int x = 0; x < 2000000; x++)
{
layout.setBackgroundColor(background);
try {
timer.sleep(longTime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
layout.setBackgroundColor(backgroundBlack);
try {
timer.sleep(shortTime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

我遇到的问题是,当我单击按钮调用该代码时,没有任何反应。所以我做了一些调试,我很确定这是计时调用。我以前从未用 Java 编程过,所以我不确定如何调用线程休眠。

最佳答案

您可以使用如下所示的处理程序来实现此目的。

public class Strobe extends Activity {

private LinearLayout mLinearLayout;

private Handler mHander = new Handler();

private boolean mActive = false;
private boolean mSwap = true;

private final Runnable mRunnable = new Runnable() {

public void run() {
if (mActive) {
if (mSwap) {
mLinearLayout.setBackgroundColor(Color.WHITE);
mSwap = false;
mHander.postDelayed(mRunnable, 20);
} else {
mLinearLayout.setBackgroundColor(Color.BLACK);
mSwap = true;
mHander.postDelayed(mRunnable, 100);
}
}
}
};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLinearLayout = (LinearLayout) findViewById(R.id.strobe);
startStrobe();
}

private void startStrobe() {
mActive = true;
mHander.post(mRunnable);
}
}

为 Activity 设置主题以使其全屏显示。

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

关于android - Android 中的时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6479880/

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