2011년 11월 21일 월요일

차트 컨트롤과 뷰 커스터마이징

증권계통일을 많이하다보니 차트도 만들게 된다. 만들게 된다기 보다는 매번 프로젝트마다 고객사의 입맛에 맞게 차트를 수정해야 하는 일이 생기는데...
사실 GVM 시절부터 차트를 만들어오던 터라 그냥 만드는데 익숙해져 있다. 

이번에도 모 증권사에서 안드로이드용 앱을 새로 만드는데 기존에 만든 아이폰 차트와 동일하게 해달라는 바람에 거의 새로 만들었다.
머... 중요한거는 그게 아니고 컨트롤 혹은 뷰를 커스터마이징 하는데에 있어 예전처럼 완전 맨땅에 헤딩하는것도 아니고 View 혹은 아이폰 같은 경우 UIView를 상속받아 그림만 그려주면 되는데... 
왜! 다들 못해서 그런건지 하기 싫어서 그런건지 손도 댈 생각을 안하는지 모르겠다.

차트에 국한된 문제가 아니고... 컨트롤이나 레이아웃을 조합해서 커스터마이징하는건 해도... 선그리고 사각형 그리고 해서 만드는 오너 드로잉 컨트롤은 손도 안대려고 한다.
 아이폰이나 안드로이드의 컨트롤 시스템이 너무 잘 되있어서 개발자들의 버릇이 나쁘게 드는것 같은 생각이...
 아래 화면은 이전 소스에서 참고하긴 했지만 하루만에 만든 차트... 플리킹 스크롤 및 확대... 꾹.. 누르고 있으면 해당일자의 상세 내용도 보여주고.... 보조지표도 10개정도 있는.... 가로모드도 지원되고... 하루만에 만들었다. 내가 잘해서 그런것도 아닌데....


xml에서도 섞어 사용하려면 모든 생성자를 다 만들자. (사실 두번째를 만들면 xml에서 사용할 수 있다.)오너 드로잉 컨트롤을 만드는건... 사실 회사 제품만 아니면 위 소스를 공개해버리고 싶지만.. 생각보다 단순하다.
일단 클래스를 하나 만들고 View를 상속 받는다. 그러면 생성자 없으니 만들라고 할 것이다.
생성자 만들고... Paint 객체 하나 만들고 onDraw 상속받아 그림그리고, onTouchEvent 상속받아 조작 처리하면 된다. 지금 맥을 안가지고 나와서 아이폰을 자세히 설명할 수는 없지만 아이폰도 대동소이하다.

더 궁금하면 구글에서 ... android View 상속, 내지는 View 커스터마이징... 등 찾아보면 수두룩한 자료가 나온다. 
저런 글 쓰는 사람들 찾아서 좀 데리고와 일시켜야 겠다... ㅎ


댓글 없음: