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);
도움을 주셔서 감사합니다!
고마워요! 내 코드가 작동하지 않는 이유를 설명해 주시겠습니까? 다시 감사합니다! –
Handler는 백그라운드에서 래퍼입니다. 오랜 시간 작업을 할 수있는 스레드와 오랜 시간 동안의 작업 과정에서 사용자와 상호 작용해야하는 UI가 있습니다. 따라서 Hander는 UI 스레드에서 작동하고 중지하면 UI가 중단됩니다. 백그라운드 작업을 수행하는 3 가지 방법 : 처리기, AsyncTask <> 및 서비스가 존재합니다. 더 많은 정보 검색 : http://developer.android.com/guide/components/processes-and-threads.html –
다시 한번 감사드립니다. –