2011-09-27 26 views
0

我想實現一個功能,其中在ImageView中設置的圖像的特定區域將導致調用意圖。android ImageView超鏈接coords

到HTML COORDS類似超鏈接

<img src ="planets.gif" width="145" height="126" alt="Planets" usemap ="#planetmap" /> 

<map name="planetmap"> 
    <area shape="rect" coords="0,0,82,126" href="sun.htm" alt="Sun" /> 
    <area shape="circle" coords="90,58,3" href="mercur.htm" alt="Mercury" /> 
    <area shape="circle" coords="124,58,8" href="venus.htm" alt="Venus" /> 
</map> 

我想實現這個即使在放大的圖像。

繼承人什麼我已經搜索並發現了線索:

我將在onTouch使用一個SurfaceView適當的邏輯();

類似的功能是有mapViews獲取投影方法。類似的,但應該是一個位圖加載。

回答

0

另一種可能的方法是創建一個使用透明9補丁作爲背景的視圖。將其設置爲您需要的任何大小和位置,並從onClickListener()調用您的意圖。從用戶的角度來看,這實現了同樣的效果。

編輯: 如果你想多個活動在同一時間,你不得不使用多個透明的意見。如果您一次只想使用1個,則可以重複使用同一個,只需更改其大小/位置即可。

由於使用這種方法會造成額外的觀點,你要採取輕微的性能命中。如果您希望最大限度地提高性能,就像您在上面提到的那樣附加OnTouchListener並在onTouch回調中使用邏輯。您可以創建Rect對象來表示觸摸區域,並調用Rect.intersect()以查看觸摸事件位置是否與您的一個rect區域相交。這可能會給你更好的整體表現。

+0

我將如何在這種方法中設置多個區域? – Shardul

+0

您必須使用多個視圖,請參閱我的編輯。 – FoamyGuy

+0

你有樣品嗎?如果我想縮放這個圖像,那麼這些區域也應該縮放。就像在臉書上添加標籤一樣。 – Shardul