public class Image extends Activity {
ImageView iv =null;
ImageView iv2 = null;
viewthread viewthread1 = null;
Animation ani = AnimationUtils.loadAnimation(this, R.anim.anime);
private static final int POSITION_VIEW = 0;
private class viewhandler extends Handler{
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch(msg.what){
case POSITION_VIEW:
ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(iv2.getLayoutParams());
margin.leftMargin = msg.arg1;
margin.topMargin = msg.arg2;
iv2.setLayoutParams(new RelativeLayout.LayoutParams(margin));
iv.startAnimation(ani);
iv2.startAnimation(ani);
Toast.makeText(getApplicationContext(), "marginleft"+margin.leftMargin+"margintop"+margin.topMargin, Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
}
private class viewthread extends Thread{
viewhandler handler = new viewhandler();
public void run(){
int x = iv.getRight();
int y = iv.getTop();
Message msg;
msg = handler.obtainMessage(POSITION_VIEW, x, y);
Toast.makeText(getApplicationContext(), "int x"+x+"int y"+y, Toast.LENGTH_LONG).show();
handler.sendMessage(msg);
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
ImageView iv = (ImageView) findViewById(R.id.iv);
ImageView iv2 = (ImageView) findViewById(R.id.iv2);
viewthread1 = new viewthread();
viewthread1.start();
이미지뷰 두개를 연속하여 애니메이션으로 뛰울려고하는데..
이전에 핸들러 공부하기전에 뷰의 위치를 onCreate안에서 알아내니 항상 0,0이뜨고 이유인즉
onCreate는 뷰를 만드는중이라 그렇다고 인터넷에서 봤습니다. 그래서 핸들러 공부하고
소스를 다시 짜는데 .. 왜..? 뷰의 위치를 알아내지못하고 강제 종료 되는것일까요...??
거의 일주일째 이거를 해결못하고 있네요.. 답변좀 부탁드립니다.ㅠㅜ