Android-在屏幕上移动视图

Android-在屏幕上移动视图,android,view,Android,View,我有一个自定义视图,其中添加了一个名为moveView的方法,当调用该方法时,该方法会将视图的位置在Y方向上更改X个像素。现在我想让其中的6个视图分布在整个屏幕上,并不断移动 我所拥有的: 处理程序(我需要它来更新UI?) ApplyMoveRunnable(实现Runnable。构造函数接收自定义视图、要移动的像素数量和移动方向) 6个线程(每个视图一个) 6MoveCalcRunnable(每个线程一个。实现可运行) 我尝试的是: 我尝试创建6个视图,然后创建6个线程。每个线程在各自的视图中

我有一个自定义视图,其中添加了一个名为moveView的方法,当调用该方法时,该方法会将视图的位置在Y方向上更改X个像素。现在我想让其中的6个视图分布在整个屏幕上,并不断移动

我所拥有的:

  • 处理程序
    (我需要它来更新UI?)
  • ApplyMoveRunnable
    (实现Runnable。构造函数接收自定义视图、要移动的像素数量和移动方向)
  • 6个线程(每个视图一个)
  • 6
    MoveCalcRunnable
    (每个线程一个。实现可运行)
  • 我尝试的是: 我尝试创建6个视图,然后创建6个线程。每个线程在各自的视图中调用moveView()方法。此moveView()方法计算视图将移动的像素量及其移动方向,并将此信息发送到
    ApplyMoverUnable
    ,然后调用
    处理程序.post(ApplyMoverUnable)

    简言之,发生的情况是:

  • 实例化
    applymoverunable applymoverunable
  • 实例化
    处理程序
  • 实例化6
    MoveCalcRunnable
  • 创建6个线程,每个视图一个,每个线程包含一个
    MoveCalcRunnable
  • 启动所有线程
  • 当我运行这个程序时,首先我看到了我的6个视图,但是一个视图移动了,其他什么都没有发生

    下面是我的每个
    MoveCalcRunnable
    的run()方法:

        @Override
        public void run() {
                Log.e(tag, "Thread locking directionAmountRunnable.");
                synchronized (applyMoveRunnable) {
                    Log.e(tag, "Moving view.");
                    myView.moveView();
            }
        }
    
    有人能帮我把这件事做好吗?或者建议一种更好、更简单和/或更有效的方法