申し訳ありませんが、単純なタイマーの作成に関する数え切れないほどのチュートリアルを読んだ初心者です。問題を引き起こしているwhileループであることに気付くまで、なぜ機能しないのか疑問に思っていましたoOを削除しましたが、機能するのは1回だけですただし、ループを使用する必要があるため、動きが終了します:C
コードは次のとおりです。
old_x は ImageView の座標であり、new_x は onTouch イベントの座標です。おそらく問題は、それらを int としてキャストしているためですか? 何をする必要があるのかわからないので、うまくいきます助けてくださいO:
while(old_x != new_x)
{
timedMoveIV(100);
old_x = (int)img.getX();
}
ループなしで実行すると機能するこのメソッドを呼び出します。
public void timedMoveIV(int time_ms)
{
//sleep for time_ms milliseconds
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if(new_x > img.getX())
{
img.setX(img.getX() + 1);
}
else
{
img.setX(img.getX() - 1);
}
}
}, time_ms);
}