gpt4 book ai didi

android - 上次触摸 60 秒后开始 ViewFlipper 的翻转

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

我的应用程序包含一个带有一些图像的 ViewFlipper。当应用程序启动时,ViewFlipper startflipping()。当用户触摸屏幕时 ViewFlipper stopflipping()。我必须在最后一次触摸 60 秒后执行此操作,ViewFlipper 才能再次开始翻转。我的类实现了 onTouchListener 并且我有这个方法 onTouch:

public boolean onTouch(View arg0, MotionEvent arg1) {


switch (arg1.getAction()) {
case MotionEvent.ACTION_DOWN: {

downXValue = arg1.getX();
break;
}

case MotionEvent.ACTION_UP: {

currentX = arg1.getX();


if (downXValue < currentX) {
// Set the animation
vf.stopFlipping();
vf.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_out));
vf.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_in));
// Flip!
vf.showPrevious();
}


if (downXValue > currentX) {
// Set the animation
vf.stopFlipping();
vf.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
vf.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
// Flip!
vf.showNext();
}

if (downXValue == currentX) {
final int idImage = arg0.getId();

vf.stopFlipping();
System.out.println("id" + idImage);
System.out.println("last touch "+getTimeOfLastEvent());

}
break;
}
}

// if you return false, these actions will not be recorded
return true;
}

我找到了这个方法,用于查找最后一次触摸的时间:

static long timeLastEvent=0;
public long getTimeOfLastEvent() {

long duration = System.currentTimeMillis() - timeLastEvent;
timeLastEvent = System.currentTimeMillis();
return duration;
}

我的问题是:我应该在哪里调用 getTimeOfLastEvent()?如果我把它放在 onTouch() 上,我永远不会捕捉到 getTimeOfLastEvent==60000 的时刻,对吗?

最佳答案

你应该做的是创建一个 Handler (应该是您的 Activity 的实例变量,并且应该在 onCreate 期间初始化):

Handler myHandler = new Handler();

此外,您还需要一个可以再次开始翻转的Runnable(也需要在您的Activity 中声明):

private Runnable flipController = new Runnable() {
@Override
public void run() {
vf.startFlipping();
}
};

然后在您的 onClick 中,您只需将 Runnable 发送到 Handler 上,但会延迟 60 秒:

myHandler.postDelayed( flipController, 60000 );

延迟发布意味着:“在 60 秒内运行此代码”。

关于android - 上次触摸 60 秒后开始 ViewFlipper 的翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8295113/

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