我想要一条线在一个无输入的无止境循环中,从上到下与时间同步移动。 我尝试使用计时器类,但我不知道为什么,但只有当我触摸并持续触摸屏幕时,线才会移动,一旦我松开屏幕,它就会停止。
下面的代码位于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);
您可以使用时间线代替