2017-04-05 11 views
2

Google은 적절한 시스템을 갖춘 솔루션을 찾고 있습니다. 우리가 찾고있는 솔루션은 (핀치 -) 줌과 여러 세부 수준을 지원하는 타일 기반 이미지 뷰입니다. 우리는 이미지가 상당히 크기 때문에 타일 기반 확대/축소를 조사하고 있으며 Android가로드 할 수있는 단일 비트 맵 크기에 제한이 있습니다.Android 용 확장형 타일 기반 이미지 뷰어

원하는 결과 :

워크 플로우는 다음과 같다 :

    보기
  • 보기 초기 표시 피팅 상세 수준을 판단한다 (이미지의 확대를 위해), 총 섬도 공급
  • 보기는 세부 수준의 표시 타일을 표시합니다 (예 : level_row_col.png)
  • 사용자가 새로운 가시적 인 타일 그리기 및 화면 밖 타일 해제하기
  • 사용자는 특정 임계 값에 도달하면 새로운 세부 수준의 그리기를 트리거하여 이미지를 확대/축소 할 수 있습니다. 타일에 대한 최대 디테일 레벨은 입니다. 디스크 공간을 절약 할 수 있지만 최대 레벨에 도달하면 더 이상 다시 그려지지 않고 을 확대 할 수 있습니다.
  • 원래 이미지는 특정 크기의 정사각형 타일로 나뉘며, 에지 타일은 잠재적으로 더 작습니다. 각각의 세부 묘사 수준이 낮 으면 은 그림을 절반 크기로 똑같이 처리합니다. 예를 들어, 2000x2000px의 이미지는 가장 구체적인 수준 인 에 8x8 256x256 정사각형 타일로 구성됩니다.이

    우리의 현재 구현 한 세부에서 잘 작동하는 사용자 정의 내장 된 이차원있는 ScrollView를 사용하여 다음 세부 수준은

현재 구현 및 문제 등 4 × 4 (덜 자세한) 256 * 256 타일을 포함 할 것 수평. 사용자는 버튼을 클릭하여 확대 또는 축소 할 수 있습니다. 이렇게하면 새로운 크기의 완전히 새로운 scollview가 만들어지고 새로 결정된 격자에 타일이 그려집니다. 우리가 처음에 스크린에 이미지를 맞추기를 원하기 때문에 초기 뷰 크기가 원본보다 작다는 문제가 있습니다. Scale 속성을 사용하여 뷰를 확대하면 크기가 변경되지 않으므로 확대 된 각 레벨이 마지막 크기보다 크기 때문에 이전 크기보다 더 자세한 타일을 새 크기로 그릴 수 없습니다. 또한 원본 이미지의 크기보다 더 멀리 확대 할 수 없으므로 이미지의 세부적인 부분이 필요합니다.

우리의 아이폰 OS 구현이 같은 CATiledLayer-기능과 기능의 사용을 만드는 TilingView

사람이 컨트롤이나 솔루션의 종류에 우리가 사용할 수있는 어떤 생각을 가지고 있습니까?

+0

여러분의 요구 사항이 매우 구체적이어서 처음부터 [custom view] (https://developer.android.com/training/custom-views/index.html)를 만들어야한다고 생각합니다. – pskink

답변

0

비슷한 문제점으로 사용한 라이브러리는 TileView입니다.

enter image description here

이 maintaned, 사용자 정의 및 풍부한 기능을 출하하고있다.

타일 소스를 네트워크 또는 SD 카드에서 자유롭게 제공 할 수 있습니다.