2013-02-05 3 views
0

이 이미지를 HTML의 이미지 맵과 유사하게 만들 필요가 있습니다. 나는 또한 클릭 가능한 영역 (가운데, 일종의지도 표식과 같은) 위에 아이콘을 배치해야하지만 이미지 크기 조정을 어떻게 설명 할 수 있습니까?안드로이드 아이콘이있는 클릭 가능한 이미지

즉, 내 이미지는 800x600 일 수 있고 클릭 가능한 영역은 20,20,60,40으로 덮는 사각형 일 수 있지만 이미지가 표시되지 않을 때 이미지의 동일한 위치를 실제로 참조하지는 않습니다 픽셀 완벽한 패션.

편집 : 내 이미지가 없습니다 당김 폴더에서, SDCARD에서 가져

답변

-1

이 내가 나 자신의 이미지를 표시하고 에서 사용자 탭이 필요 발견이 link

에서 찾을 것입니다 탐색하고 수행 할 이미지의 다른 부분. 내가 필요한 것을 스케치 한 후, 내가 원했던 것이 HTML 맵 태그와 같은 것이지만 안드로이드 뷰에서 분명하게 나타났습니다. 조금 더 생각하고 이것이 유용한 도구가 될 것이라고 결정했습니다 사용할 수 있습니다.

결과 코드 :

는 XML에서 지역 태그 목록을 허용합니다 레이아웃에 당김이나 비트 맵으로 이미지를 지원는 자원 XML로 잘라 내기 및 붙여 넣기 HTML 영역 태그의 사용을 가능하게 (즉, HTML 맵과 이미지를 취하여 최소한의 편집으로 을 사용할 수 있음) 이미지가 장치 화면보다 큰 경우 패닝을 지원합니다. 핀치 줌을 지원합니다. 영역 을 두드리면 콜백을 지원합니다. 거품 텍스트로 보여주는 주석을 지원하고, 거품이 코드는 2012 년 3 월 GitHub – Android Image Map

업데이트 2에서 찾을 수 있습니다 탭 경우 콜백을 제공 : 추가 항상 원본 이미지 비트를 사용하여 이미지의 크기를 조절하는 옵션을 선택합니다. 특정 이미지는 위아래로 크기를 조정하면 이미지 품질이 좋은 이 손실됩니다. 항상 원래 비트 에서 크기를 조정하면 최상의 이미지를 얻을 수 있지만 추가 메모리가 필요합니다. 의 트레이드 오프는 이제 끝납니다.

구현에 대한 몇 가지 간단한 참고 사항이 있습니다. 몇 가지 주요 영역에 대한 세부 정보가있는 후속 게시물을 작성하겠습니다.

지도를 img와 연결하기가 쉽기 때문에 HTML의 img 태그에서 을 쉽게 처리 할 수 ​​있습니다.

이 지역지도가 고해상도/XML/map.xml에서 프로젝트에 지정된
<!--?xml version="1.0" encoding="utf-8"?--> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ctc="http://schemas.android.com/apk/res/com.ctc.android.widget" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <com.ctc.android.widget.ImageMap 
     android:id="@+id/map" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:src="@drawable/usamap" 
     ctc:map="usamap"/> 
</LinearLayout> 

한 HTML지도를 통해 차이가 각 점이다 : 그냥지도의 이름이 에서 레이아웃을 사용하는 공급 영역에는 ID가 있어야합니다. 이 요구 사항에 대해 을왔다 갔다하며 코드가 바뀌어 id가없는 영역에 을 허용 할 수 있습니다. 코드는 name 속성을 사용합니다 ( ). 그렇지 않으면 title 또는 alt를 찾습니다. 현재 구현에는 각 영역에 대한 이름이 필요하지만 쉽게 변경할 수 있습니다 ( ).시스템은 dpi로 기초하여 상기 단말기로 이미지를 적합하지 않도록

<!--?xml version="1.0" encoding="utf-8"?--> 
<maps xmlns:android="http://schemas.android.com/apk/res/android"> 
    <map name="gridmap"> 
     <area id="@+id/area1001" shape="rect" coords="118,124,219,226" /> 
     <area id="@+id/area1002" shape="rect" coords="474,374,574,476" /> 
     <area id="@+id/area1004" shape="rect" coords="710,878,808,980" /> 
     <area id="@+id/area1005" shape="circle" coords="574,214,74" /> 
     <area id="@+id/area1006" shape="poly" coords="250,780,250,951,405,951" /> 
     <area id="@+id/area1007" shape="poly" coords="592,502,592,730,808,730,808,502,709,502,709,603,690,603,690,502" /> 
    </map> 
    <map name="usamap"> 
     <area id="@+id/area1" shape="poly" coords="230,35,294,38,299,57,299,79,228,79" /> 
... 
    </map> 
</maps> 

이미지 자체가 고해상도

/그리기-nodpi에 배치된다. 이렇게하면 지역 좌표가 표시된 이미지 에 제대로 매핑됩니다. 여기

은 레이아웃보기를 발견하고이 도움이 될 것입니다

public class ImageMapTestActivity extends Activity { 
    ImageMap mImageMap; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     // find the image map in the view 
     mImageMap = (ImageMap)findViewById(R.id.map); 

     // add a click handler to react when areas are tapped 
     mImageMap.addOnImageMapClickedHandler(new ImageMap.OnImageMapClickedHandler() { 
      @Override 
      public void onImageMapClicked(int id) { 
       // when the area is tapped, show the name in a 
       // text bubble 
       mImageMap.showBubble(id); 
      } 

      @Override 
      public void onBubbleClicked(int id) { 
       // react to info bubble for area being tapped 
      } 
     }); 
    } 
} 

희망이 클릭 핸들러에 추가 샘플 활동이다.

+0

감사합니다. 시도해 볼 것이지만 리샘플링 된 이미지에 아이콘을 두어야하는 실제 위치가 아닙니다. 그것은 흥미로운 해결책이지만. – MichelReap

+0

사실 저는 이것을 사용하지 않았지만 구현을 시작했을 때 실제로 어떻게 작동하는지 더 잘 알게 될 것입니다. – KDeogharkar

+0

좌표를 볼 수 있습니다. – KDeogharkar

관련 문제