我的 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/