2011-09-27 66 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