2011-12-14 3 views
4

많은 수의 개체가있는 2D 그래픽보기가 필요한 안드로이드 응용 프로그램에서 작업하고 있습니다. 여기에 기본적으로 표시 할 필요가 무엇 : 내 경우안드로이드 용 2D 그래픽 라이브러리

enter image description here

는 공간적으로 분산 객체의 수백있을 수 있습니다. 이보기는지도처럼 동작하므로 사용자는 가로 및 세로로 스크롤하고 확대 및 축소 할 수 있습니다. 또한 클릭 이벤트 처리가 필요하므로 사용자는 삼각형을 클릭 할 수 있으므로 특정 삼각형과 관련된 확장 정보를 표시해야합니다.

내가 주로 관심을 약 3 일 해요 :

  • 이 경우 내 onDraw() 핸들러에서 당 모든 개체를 다시 그릴을, 그건 정말 느린 것입니다. 또한,이 중 일부는 줌 레벨 및 스크롤 위치에 따라 보이지 않기 때문에 모든 객체를 그릴 필요조차없는 경우가 있습니다. 이들은 수동으로 구현하고 싶지 않은 쿼드 트리를 사용해야합니다.
  • 이러한 모든 객체는 (x, y, 회전, 유형)으로 정의되므로 고객이 "모두 표시"버튼이 필요하다고 판단한 경우 경계 상자를 계산하는 기능을 구현해야합니다.
  • 클릭 이벤트를 처리하고 이러한 모든 모양을 드래그 할 수 있어야합니다.

이러한 작업에 도움이되는 라이브러리가 있습니까? 이미 구현되어 있어야한다고 생각하는 물건에 3 일을 보내고 싶지 않습니다.

답변

2

android.graphics 패키지의 Canvas 클래스의 모든 방법으로 충분할 것입니다. Canvas은 클리핑 (그리기 명령이 표시되지 않는 경우 삭제됨)이므로 이미지가 정적 인 경우 Picture으로 렌더링하고 onDraw()에 그릴 수 있습니다.

드로잉 메서드에는 경계를 계산하고 반환하는 메서드가 있다고 생각합니다. PathcomputeBounds(RectF bounds, boolean exact)을 참조하십시오.

+0

정말 끔찍한 접근이지만, 다른 것을 찾지 못해서 그것을 사용하고 있습니다 .--( – agibalov

+1

미안 해요. 게임 엔진이 부족한 라이브러리를 제공 할 수 없었습니다. 캔버스는 좋은 직장입니다. 그리기 호출을 최적화하고 주 병목 현상이 거의 항상 채워집니다. – Jasoneer