안드로이드 개발 질문/답변
(글 수 45,052)
<< 하나의 Activity에서 3개의 view 보여주기 >>
안녕하세요, 안드로이드 초보입니다.
안드로이드 UI를 멋지게 꾸며보려고 하는데요..
위처럼 안드로이드 액티비티를 세 등분해서 각각의 뷰를 보이고 싶어요.
각각 다른 색으로 된 사각형 부분이 각각의 뷰로 보이도록요.
제가 View 클래스를 상속받는 View1이라는 클래스를 따로 만들어서
Canvas를 이용하여 원하는 그림이나 글씨를 출력할 거구요,
View1 클래스를 사용할 Activity를 상속받은 클래스에서는 다음과 같이 코드를 짰습니다.
View1 view1 = new View1(this);
View vg1 = (View)findViewById(R.id.Vg1);
vg1 = (View)View1;
R.id.Vg1은 xml 파일에서 지정해둔 View 이구요.......
이렇게 하면 액티비티 상속 클래스에선 아무것도 안 떠요... ㅠ_ㅠ
그렇다고 SetContentView(vg1); 코드를 넣으면 액티비티 전체를 vg1이 차지해서 vg2, vg3는 온데간데 없어지고요.......
invalidate 함수를 써야 하나요?? addView 함수를 써야 하나요??
뭘 어떻게 해야 할지.......
저번주부터 이것땜에 꼼짝도 못 하고 있어요. 살려주세요!!
2010.12.13 17:12:47
xml에 커스텀 뷰를 지정하면 될건데요..
xml 레이아웃에서 <LinearLayout> 대신 <com.google......(패키지명).View1>
2010.12.13 19:33:39
setContentView로 set 할수 있는 뷰는 하나입니다.
즉 1개의 뷰를 3개의 sub-View로 표현하는 방식 혹은 1개의 뷰에서 어떻게든 처리해서 3개처럼 보이게 하는 방식
크게 두가지만 통용될수 있습니다.
set이라는 동사가 메소드 이름에 들어가면 "대체한다"라는 개념으로 봐야 합니다. (통념적인 이름짓는 방법입니다.)
contentView를 새로운 뷰로 대체하는게 setContentView라는 메소드라는거죠.
말씀하신대로 표현하기 위해 가장 편한 방법은
LinearLayout하나를 setContentView하시고 LinearLayout에 커스텀 뷰들을 추가시키는 방법이 잴 편할듯합니다.
즉 1개의 뷰를 3개의 sub-View로 표현하는 방식 혹은 1개의 뷰에서 어떻게든 처리해서 3개처럼 보이게 하는 방식
크게 두가지만 통용될수 있습니다.
set이라는 동사가 메소드 이름에 들어가면 "대체한다"라는 개념으로 봐야 합니다. (통념적인 이름짓는 방법입니다.)
contentView를 새로운 뷰로 대체하는게 setContentView라는 메소드라는거죠.
말씀하신대로 표현하기 위해 가장 편한 방법은
LinearLayout하나를 setContentView하시고 LinearLayout에 커스텀 뷰들을 추가시키는 방법이 잴 편할듯합니다.




본문에선 이미지가 안 보이네요... 첨부파일을 봐 주십시오.