마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

객체지향성? 이라고 해야되는지.. view와 layout에 대해 질문드립니다.

0 추천

제가 view하고 layout하고 혼동을 하고 있어서 이런 생각이 드는지 모르겠는데요.

우선 activity가 있고, 실제적으로 화면을 그리고 입력을 받는 부분은 view라고 알고 있습니다.

이 뷰의 레이아웃은 java코드로도 정의할수 있고 xml파일로도 정의할수 있습니다.

레이아웃도 결국 view의 집합이기때문에 view클래스 안에서 전부 구현 가능하다고 생각하구있구요.

지금 왜 이런 고민이 생겼냐면...

제가 한 액티비티에서 imageview를 두개 그려주고, 그 imageview에 대한 touch이벤트를 받아야 하는 상황입니다.

.. 학교 프로젝트차 틀린그림찾기를 만들고 있습니다.

아래 그림을 보시면 전체가 fragment이고 fragment전체 크기의 리니어레이아웃이고 이 안에 이미지뷰가 2개 들어있습니다. fragment는 한 화면이 넘어갈때마다 그림이 바뀌므로 이 애니메이션을 적용하기 위하여 사용하였구요.

이걸 구현하기 위해서 xml파일을 하나 만들어서 그안에 리니어레이아웃과 이미지뷰 2개를 넣고, 그걸 fragment에서 불러오는 구조입니다.

이게 fragment클래스의 코드부분입니다.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  LinearLayout layout = ( LinearLayout)inflater.inflate(R.layout.game_layout, null);
  return layout;
 }

레이아웃을 인플레이트 시켰기 때문에 해당 레이아웃의 뷰들에 접근해서 이벤트 등록이라던지 할수 있는데요.

뭔가 맞는 방법이 아닌것 같아서 질문드립니다.

사실 제가 원하는 방법은 이벤트 그리기 등의 모든 처리를 해주는 view클래스를 하나 만들어서 이 안에서 다 처리를 해주고, fragment에서는 이 뷰를 선언해서 사용하는 방법으로 하려고 했었는데, 쉽지가 않더라구요.

뭔가 질문이 두서없는것 같은데.. 요약하자면

"view클래스를 상속받는 어떤 클래스에서 레이아웃, textview등의 배치와 이벤트 등 메소드 등록을 전부 하고, 다른 클래스에서 이 뷰를 생성해 활용할수 있는가?"

하는 문제입니다.. 물론 되겠지만 검색만으로는 시원한 답을 찾기가 어렵더군요.. view를 상속받는 클래스 안에서 textview를 생성해 배치하려고 하면 onDraw등이 걸리더라구요. 명쾌한 답변 부탁드립니다..

나름대로 고민을 많이 했는데 공부가 덜되서인지 헷갈리네요.

 

모나미153 (17,540 포인트) 님이 2013년 11월 23일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...