android - 在 Android 中每隔一秒逐个像素地移动 textview

标签 android textview runnable

我的 Android 应用程序中有一个 TextView。我想每隔一个像素一个像素地移动那个 TextView。我正在使用 setX 方法移动 textView。如果我使用一个按钮并单击它,它工作正常。每次单击时,textview 都会移动,但是当我尝试使用带处理程序的循环使其自动化时,它的移动并不流畅,它只是毫不拖延地冲到屏幕左侧。这是我正在使用的代码

    int i = (int) txtView.getX();    
    while (i>0)
    {
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable()
        {
             @Override
            public void run()
            {
               txtView.setX((int) txtView.getX() - 1);
            }
        }, 1000)
    i--;
  }

最佳答案

因为您在没有任何处理的情况下设置 posDelayed 操作。您正在设置执行可运行之前的延迟。但是你的 while 循环的两次迭代之间没有延迟

也许你可以这样做

      handler.postDelayed(r, 1000);

      Runnable r = new Runnable()
        {
             @Override
            public void run()
            {
               txtView.setX((int) txtView.getX() - 1);

               i--;
               if(i>0)
                    handler.postDelayed(r,1000);
            }
        }

关于android - 在 Android 中每隔一秒逐个像素地移动 textview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16895520/

相关文章:

java - 最快的同步技术

java - 在内部类运行中使用变量

android - 找不到库 "libmaliinstr.so"

android - Xamarin Android 应用程序内存使用情况

java - Android - 即使下载是在单独的线程中启动的,但文件下载也会出现 NetworkOnMainThreadException

android - 无法让倒数计时器在我的程序中工作或显示

android - 将 textView 动态添加到 linearLayout

android - 首次放置小部件加载耗时数据的设计模式

安卓服务被杀

java - 如何让我的 android 对话框全屏显示?