用线程和处理程序闪烁圆圈但无法阻止它
Blink circle with thread and handler but impossible to stop it
我开发了一个应用程序,我想当你点击一个按钮时让一个圆圈闪烁。我的视野中有 8 个圆圈,我希望它们分别闪烁。我使用此代码:
public void blink(final View id, final int position, final boolean bool) {
final Handler handler = new Handler();
Thread th = new Thread(new Runnable()
{
@Override
public void run() {
final int timeToBlink = 250;
try {
Thread.sleep(timeToBlink);
} catch (Exception e) {
e.printStackTrace();
}
handler.post(new Runnable()
{
@Override
public void run()
{
if (id.getVisibility() == View.VISIBLE) {
id.setVisibility(View.INVISIBLE);
} else {
id.setVisibility(View.VISIBLE);
}
blink(id,position,true);
}
});
}
});
th.setName(Integer.toString(position));
aThread.add(th);
th.start();
其中 id 是圈子的 id
但我无法停止眨眼 th.interupt
有人可以帮助我吗?
感谢@jibysthomas 我解决了我使用 this link 的问题,我做到了:
final Animation animation = new AlphaAnimation(1, 0);
animation.setDuration(250); // duration - half a second
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.REVERSE);
我在我的圈子里称这个为动画。
非常感谢 jiby thomas
我开发了一个应用程序,我想当你点击一个按钮时让一个圆圈闪烁。我的视野中有 8 个圆圈,我希望它们分别闪烁。我使用此代码:
public void blink(final View id, final int position, final boolean bool) {
final Handler handler = new Handler();
Thread th = new Thread(new Runnable()
{
@Override
public void run() {
final int timeToBlink = 250;
try {
Thread.sleep(timeToBlink);
} catch (Exception e) {
e.printStackTrace();
}
handler.post(new Runnable()
{
@Override
public void run()
{
if (id.getVisibility() == View.VISIBLE) {
id.setVisibility(View.INVISIBLE);
} else {
id.setVisibility(View.VISIBLE);
}
blink(id,position,true);
}
});
}
});
th.setName(Integer.toString(position));
aThread.add(th);
th.start();
其中 id 是圈子的 id
但我无法停止眨眼 th.interupt
有人可以帮助我吗?
感谢@jibysthomas 我解决了我使用 this link 的问题,我做到了:
final Animation animation = new AlphaAnimation(1, 0);
animation.setDuration(250); // duration - half a second
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.REVERSE);
我在我的圈子里称这个为动画。
非常感谢 jiby thomas