【问题标题】:android ImageView hyperlink coordsandroid ImageView 超链接坐标
【发布时间】:2011-11-26 04:27:03
【问题描述】:

我想实现一个功能,当 ImageView 中设置的图像的特定区域将导致调用意图时。

类似于 HTML 坐标超链接

<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 get 投影方法也有类似的功能。与此类似,但应该是加载的位图。

【问题讨论】:

    标签: android android-intent click surfaceview area


    【解决方案1】:

    另一种可能的方法是为自己创建一个使用透明 9 补丁作为背景的视图。将其设置为您需要的任何大小和位置,并从其 onClickListener() 调用您的意图。从用户的角度来看,这是达到同样的效果。

    编辑: 如果您想同时进行多个活动,则必须使用多个透明视图。如果您一次只希望 1 个处于活动状态,您可以重复使用同一个并更改它的大小/位置。

    由于使用这种方法会创建额外的视图,因此您的性能会受到轻微影响。如果您正在寻求最大限度地提高性能,请执行上面提到的附加 OnTouchListener 并将逻辑放在 onTouch 回调中的操作。您可以创建 Rect 对象来表示您的触摸区域并调用 Rect.intersect() 来查看触摸事件位置是否与您的某个矩形区域相交。这可能会给您带来更好的整体性能。

    【讨论】:

    • 这种方法如何设置多个区域?
    • 你有工作样本吗?如果我也想缩放该图像,那么这些区域也应该缩放。就像在 Facebook 中标记一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多