提问者:小点点

如何连续每x秒动画行?


我想要一条线在一个无输入的无止境循环中,从上到下与时间同步移动。 我尝试使用计时器类,但我不知道为什么,但只有当我触摸并持续触摸屏幕时,线才会移动,一旦我松开屏幕,它就会停止。

下面的代码位于onCreate方法中,当然不在任何OnTouchListener中。 我试着在IntelliJ中每秒显示一次秒,它就像预期的那样工作。 此外,我尝试使用动画而不是改变页边距,但我得到了这个错误:

android.util.AndroidRuntimeException: Animators may only be run on Looper threads

这是我用于计时器的代码。

//CURRENT TIME LINE
final ImageView currentTimeLine_ImageView = findViewById(R.id.currentTimeLine_ImageView);
final ViewGroup.MarginLayoutParams currentTimeLine_LayoutParams = (ViewGroup.MarginLayoutParams) currentTimeLine_ImageView.getLayoutParams();
//set initial position
currentTimeLine_LayoutParams.width = (int) Math.round(dayWidth_px*7)+1;
currentTimeLine_LayoutParams.topMargin = 0;
currentTimeLine_LayoutParams.leftMargin = (int) Math.round(dayWidth_px*1.5)-1;

TimerTask task = new TimerTask() {
    @Override
    public void run() {
        int now = LocalTime.now().getSecond();
        int height = (int) Math.round(now/60.0 * usableHeight_px);
        currentTimeLine_LayoutParams.topMargin = height;
    }
};
Timer timer = new Timer();
timer.schedule(task,0,1000);

共1个答案

匿名用户

您可以使用时间线代替