2

問題があります。いくつかの画像を追加して表示する必要があります (数量は前に計算されます) 遅延してレイアウトしますが、それらは同時に表示されます。

これが私のコードです:

ハンドラ:

h = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            Log.d(LOG_TAG, "handle message!");
            int delay = msg.arg2;
            try {
                Thread.currentThread().sleep(delay);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Position position = (Position)msg.obj;
            int img = msg.arg1;
            int topMargin = getMarginInPixels(position.getY());
            int leftMargin = getMarginInPixels(position.getX());
            ImageView iv = new ImageView(MainActivity.this);
            iv.setImageResource(img);
            RelativeLayout.LayoutParams lp = new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            lp.topMargin = topMargin;
            lp.leftMargin = leftMargin;
            iv.setLayoutParams(lp);
            rl.addView(iv); 
        }
    };

そしてループで:

Message m = h.obtainMessage(0, img, delay, newPosition);
            h.sendMessage(m);

ご協力ありがとう御座います!

4

1 に答える 1

0

ハンドラーはUIで動作し、バックグラウンドスレッドで停止してみて、そこからハンドラーを呼び出します。お気に入り

new Thread( new Runnable(){
 for (int i=0;i<10;i++){
   SystemClock.sleep(1000);//
   Message m = h.obtainMessage(0, img,newPosition);
            h.sendMessage(m);
 }
}
).start();
于 2012-09-16T17:25:22.153 に答える