Android - 在屏幕上移动视图

时间:2013-05-07 06:34:11

标签: android view

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

我有什么:

  1. Handler (我需要用于UI更新吗?)
  2. ApplyMoveRunnable (实现Runnable。构造函数接收自定义视图,要移动的像素数量以及移动方向)
  3. 6 主题(每个视图一个)
  4. 6 MoveCalcRunnable (每个帖子一个。实现Runnable)
  5. 我尝试了什么: 我尝试创建我的6个视图,然后创建6个线程。这些线程中的每一个'MoveCalcRunnable都在各自的视图中调用moveView()方法。此moveView()方法计算视图将移动的像素数量以及移动的方向,并将此信息发送到ApplyMoveRunnable,然后调用handler.post(applyMoveRunnable)

    简单地说,会发生什么:

    1. 实例化ApplyMoveRunnable applyMoveRunnable
    2. 实例化Handler handler
    3. 实例化6 MoveCalcRunnable
    4. 创建6个主题,每个视图一个,每个包含一个MoveCalcRunnable
    5. 启动所有主题。
    6. 当我运行它时,首先我看到我的6个视图,然后一个移动而没有其他任何事情发生。

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

          @Override
          public void run() {
                  Log.e(tag, "Thread locking directionAmountRunnable.");
                  synchronized (applyMoveRunnable) {
                      Log.e(tag, "Moving view.");
                      myView.moveView();
              }
          }
      

      任何人都可以帮我解决这个问题吗?或者建议采用更好,更简单和/或更有效的方法来做到这一点?

0 个答案:

没有答案