안녕하세요? 개발자 여러분들. 점심 식사는 하셨나요? ^^
다름이 아니라 안드로이드 어플을 만들어보는 중 궁금증이 생겨 질문을 올리게 되었어요.
동적 레이아웃으로 RelativeLayout을 만들었습니다.
뒷 배경으로 꽉차게 ImageView를 만들어 뿌려줬구요,
버튼을 만들어 붙이는 과정입니다.
소스를 보시면
RelativeLayout frame = new RelativeLayout(this);
// 레이아웃을 만들었어요.
RelativeLayout.LayoutParams margin =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
// 레이아웃 마진을 설정했습니다.
frame.addView(image, margin.FILL_PARENT, margin.FILL_PARENT);
// 뒷배경을 만들었습니다.
setContentView(frame);
// 컨텐트뷰를 frame으로 설정했습니다.
이렇게 하면 이미지가 꽉차게 배경으로 깔립니다. 네... 이제 그 위에 버튼을 추가하는거죠.
ImageButton upbtn;
upbtn.setImageDrawable(getResources().getDrawable(R.drawable.btn_up));
//버튼의 아이디를 찾아서
margin.setMargins(200, 800, 0, 0);
// 200, 800으로 x와 y를 세팅합니다.
frame.addView(upbtn,margin);
// 해당 위치에 버튼을 추가합니다.
질문 한줄 요약 : 이렇게 하면 배경 위에 버튼이 하나 추가가되죠. 하지만 버튼을 여러개 만들어 올리면 좌표값이 다름에도 불구하고 하나밖에 버튼이 뜨질 않네요.. ㅠ.ㅠ
이미지뷰와 버튼이 다른 위젯이라서 같이 뜬걸까요? 버튼을 여러개 추가하고 싶어요..




ImageView upbtn[10];
for(int a=0; a<10; a++) {
upbtn[a] = new ImageView(this); // new를 통한 객체 생성
LayoutParams lp = new LayoutParams(200, 200); // 버튼 사이즈 설정
lp.setMargins(100*a, 100*a, 0, 0); // 버튼이 frame에서 들어갈 위치를 margins으로 설정
upbtn[a].setLayoutParams(lp); // 버튼에 lp설정
upbtn[a].setBackgroundResource(R.drawable.btn_up); // 버튼 이미지
frame.addView(upbtn[a]) // frame에 버튼 추가
}