私の Android アプリでは、タッチ イベント (1 回のタップ) が次の画像に移動するのを待って、画面に複数の画像を順番に表示したいと考えています。ここで、これを行う1つの方法は次のとおりであることがわかりました。
public class LoadImage extends Activity {
private Thread thread; //defined inside the activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_load_image);
[get an image and create a bitmap from it]
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
thread = new Thread() {
@Override
public void run() {
try {
synchronized(this) {
wait(100000000); //large number
}
}
catch(InterruptedException ex) {
}
}
};
thread.start();
}
@Override
public boolean onTouchEvent(MotionEvent evt) {
if (evt.getAction() == MotionEvent.ACTION_DOWN) {
synchronized (thread) {
thread.notifyAll();
}
}
return true;
}
}
ただし、このコードは待機をスキップして、すぐに最後の画像にジャンプするように見えます。何が問題なのですか、および/またはこれを行うためのより良い方法はありますか?