接着上一条,对于找茬里面更高的要求就是一张大图中不规则图形的点击处理,需要获取点击区域,然后点击对这个不规则区域进行处理,如变色等操作,还能知到点击的是哪个不规则区域。

先看效果图:

这个先要一个xml,这个xml里面就是各个不同区域的描点数据。先看看这个数据怎么获取吧,需要工具:Adobe Dreamweaver 。下面的演示操作使用的是Adobe Dreamweaver CC 2018.

第一步:

第二步点击插入一个Image,

第三步:

这里要选择设计,然后再回到拆分那里

第四步骤,在图片上右键,然后点击属性,选择不规则选择区域:

这里就是不规则选框,选择你要点击事件响应的不规则区域,选择完成在下面的html里面就有一个area便签,里面的一串数字代表了你的不规则区域。也就是后面安卓代码里面的pts字段里的数据了。

下面就是读取这个area区域,然后将这个区域存放在自己的一个实体中,这个实体作为后面返回给点击事件也是有必要的。然后就是监听onTouchEvent,将这个事件瓜分出来点击事件,将这个点击的位置在之前添加的area里查找,看是否包含这个点击的x,y值,如果有就说明点击到了某个区域,然后将这个区域返回出来。

  @Overridepublic boolean onTouchEvent(MotionEvent event) {boolean resStat = super.onTouchEvent(event);if (mSourceBitmap != null && !isAnimation) {if (event.getAction() == MotionEvent.ACTION_DOWN) {mDownTime = System.currentTimeMillis();mPointF.set(event.getX(), event.getY());}if (event.getPointerCount() == 1) {if (isCanMove) {moveEvent(event);resStat = true;}if (isCanClick) {clickEvent(event);resStat = true;}} else if (event.getPointerCount() == 2) {if (isCanScale) {scaleEvent(event);resStat = true;}}if (isNeedToCheckOutOfSide) {outOfSideEvent(event);resStat = true;}}return resStat;}/*** 是否点击在热点区检测** @param event*/protected void checkAreas(MotionEvent event) {mHotKeys.clear();float[] curMove = getCurrentMoveXY();float scale = getCurrentScale();for (String key : mCheckAreas.keySet()) {if (mCheckAreas.get(key).isInArea(mEmptyRectF, (event.getX() - curMove[0]) / scale, (event.getY() - curMove[1]) / scale)) {mHotKeys.add(key);lastClick = event;break;}}}
/*** 缩放事件** @param event*/protected void scaleEvent(MotionEvent event) {switch (event.getAction() & MotionEvent.ACTION_MASK) {case MotionEvent.ACTION_POINTER_DOWN:mIsTwoFinger = true;mBeforeDistance = spacing(event);if (mBeforeDistance > 10f) {mSaveMatrix.set(mMatrix);}break;case MotionEvent.ACTION_MOVE:float afterDistance = spacing(event);if (afterDistance > 10f) {float tempScale = afterDistance / mBeforeDistance;mMatrix.set(mSaveMatrix);float newScale = getCheckRangeScale(tempScale);
//              imageCenterLocation(event);mMatrix.postScale(newScale, newScale, VIEW_WIDTH / 2, VIEW_HEIGHT / 2);invalidate();}break;case MotionEvent.ACTION_POINTER_UP:if (event.getPointerCount() == 0) {upToCheckOutOfSide(event);}break;default:break;}}

基本上就这么弄完了,下面就来粘贴处demo链接,欢迎下载:https://download.csdn.net/download/greatdaocaoren/12561318

图片中不规则区域的点击相关推荐

  1. 饼图 + 不规则区域事件处理

    饼图的使用场景几乎无处不在,前段时间心血来潮,自定义了一个饼图控件,并且添加了各个区域的点击事件处理. 一.控件的绘制 基本的饼图绘制,相信有点自定义控件基础的各位应该都能绘制出来. @Overrid ...

  2. Cocos Creator实现不规则区域点击

    问题背景 在CocosCreator中,点击图片透明区域依然触发节点的点击事件.但在web开发中,可以使用Inkscape.SvgPathEditor等矢量图编辑器转为SVG,或者直接从figma中导 ...

  3. cocos2d-x中实现不规则按钮的点击效果

    cocos2d-x中实现不规则按钮的点击效果 先说一点,这是从别人那里扒来的,亲测有效觉得不错,分享一下: 原理很简单,就是判断按钮图片的点击区域 像素点透明度是不是0,需要修改源代码: 我拿coco ...

  4. 逃避误区,利用PS统计不规则区域的像素值

    写在最前: 之前网上的方法利用直方图来统计选定区域的像素值,而笔者在实际使用过程中发现,这样的做法存在以下两个问题: 1)PS显示图片总像素与实际图片总像素像素存在误差(笔者的图片尺寸为 2912x1 ...

  5. android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能.分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在 ...

  6. js小学生图区_js实现图片区域可点击大小随意改变(适用移动端)代码实例

    实现图片区域可点击,实际上使用map是可以的,但是适配效果并不好,图片只能是固定大小的值,而且点都被写死了. 在这里,我使用的js基于canvas写的一个小工具.可以圈出你需要点击的部分,然后生成一串 ...

  7. html5 图片羽化,课题:html5图像羽化(不规则区域羽化,feather,html5羽化)

    下午搜索了一堆相关文章,没有找到符合要求的. 对一张图片应用不规则区域的羽化,该怎么做呢? 首先去查了下 羽化的原理,然而没有什么用, 然后就开始从表现层去研究怎么模拟? idea 1: blur滤镜 ...

  8. unity图片指定任意不规则区域显示

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...

  9. eNSP解决OSPF不规则区域几个方法和vlink-peer

    因为刚学OSPF路由协议,下面只是个人实验结果,可能也有不准确的地方,请批评指正,谢谢 解决OSPF不规则区域 1.多进程双向重分布 2.Tunnel隧道 3.virtual-link 1.多进程双向 ...

  10. PhyGeoNet一种可用于不规则区域的物理信息极限学习机

    题目 Physics-Informed Geometry-Adaptive Convolutional Neural Networks for Solving Parametric PDEs on I ...

最新文章

  1. 10、同步机制遵循的原则_我要遵循的10条原则
  2. OpenAI最新论文:机器学习效率正在超越摩尔定律
  3. java8中的Lamba表达式
  4. 搭建 mysql-mmm 高可用群集
  5. MAC下homebre安装mysql
  6. Python-流程控制之循环
  7. spark SortShuffleWriter的实现
  8. 【clickhouse】clickchouse的分区合并速度小于插入速度会怎么样
  9. 【Elasticsearch】使用Elasticsearch 7.8 快速搭建食谱搜索系统
  10. 将dll制作成控件_案例丨首例将影视作品制作成网络图片集被判侵权案 二审维持原判...
  11. 大一计算机word排版试题,Word排版练习题
  12. java自动签到_原来实现钉钉自动签到如此简单,每天准时上下班不是梦
  13. mindoc源码编译和部署
  14. 爱快支持服务器网卡嘛,虚拟机安装爱快软路由,跟我一起来测试,单网卡安装教程...
  15. BZOJ 2751: [HAOI2012]容易题(easy)( )
  16. 误差反向传播(手把手教你推导如何通过反向传播更新参数)
  17. list保存到scv
  18. 2020扁皮筋排名_2020年高性价比弹弓推荐,(12月)弹弓选购攻略
  19. 【明解C语言】选择语句之switch
  20. 一个普通的小活动让超市回头客源源不断?方案简单到爆

热门文章

  1. 基于JavaSwing的餐厅点餐系统
  2. Axure幻灯片制作
  3. [pip安装]There was a problem confirming the ssl certificate
  4. 小程序从数组中删除指定对象,返回新的长度源代码
  5. 程序员找工作-----人力资源面试题
  6. WebSpider和一些杂七杂八
  7. 从西天取经事件看官场潜规则
  8. 展示数据的3大要点——web数据可视化的实现
  9. RK339中安卓系统7和9升级最新webView内核步骤
  10. 事业公共基础计算机,2011安徽省事业编公共基础知识(必备资料)