概述

Web的图片热点区域点击有时在Android某些界面也需要,可目前还没发现有好的控件可以实现这个功能,能想到的有两个方案:
一个是图片当背景,然后画透明控件,然后通过布局控制来放到相应的位置上然后绑定控件的点击监听事件。有个问题就是有时位置会跑掉。
另一个方案就是图片切片,然后组合,只要给需要的切片图片绑定点击监听事件即可。这种方案可行性较高。
以下是按第二种方案的实例

ImageView

根据图片的具体尺寸来调整控件的大小,不然控件太大只会拉伸图片而无法很好的组合在一起

通过设置 adjustViewBounds 来使控件大小信图片尺寸缩放,但要将自适应的宽或高设置成 wrap_content

然后通过 fitXY 缩放使图片填充整个控件

android:adjustViewBounds="true"
android:scaleType="fitXY"

链式布局

通过ConstraintLayout 控件链来达到图片的组合

图片组合后无法根据图片的宽度自动分布权重,这个需要手动计算权重然后进行每一切片的设置

app:layout_constraintHorizontal_weight="0.255"

计算方法:

  • 先加总所有图片的像素宽度
  • 用每一图片的像素宽度去除总宽度
  • 用结果的小数值来当作权重,尽量多取几位小数以尽可能完善适配

完整代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".WelcomeActivity"><ImageViewandroid:id="@+id/wel_bg_01"android:layout_width="0dp"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_01"app:layout_constraintBottom_toTopOf="@+id/wel_bg_02"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><ImageViewandroid:id="@+id/wel_bg_02"android:layout_width="0dp"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_02"app:layout_constraintHorizontal_weight="0.255"app:layout_constraintEnd_toStartOf="@+id/wel_bg_03"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/wel_bg_01" /><ImageViewandroid:id="@+id/wel_bg_03"android:layout_width="0dp"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_03"app:layout_constraintHorizontal_weight="0.13"app:layout_constraintEnd_toStartOf="@+id/wel_bg_04"app:layout_constraintStart_toEndOf="@+id/wel_bg_02"app:layout_constraintTop_toBottomOf="@+id/wel_bg_01" /><ImageViewandroid:id="@+id/wel_bg_04"android:layout_width="0dp"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_04"app:layout_constraintHorizontal_weight="0.136"app:layout_constraintEnd_toStartOf="@+id/wel_bg_05"app:layout_constraintStart_toEndOf="@+id/wel_bg_03"app:layout_constraintTop_toBottomOf="@+id/wel_bg_01" /><ImageViewandroid:id="@+id/wel_bg_05"android:layout_width="0dp"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_05"app:layout_constraintHorizontal_weight="0.133"app:layout_constraintEnd_toStartOf="@+id/wel_bg_06"app:layout_constraintStart_toEndOf="@+id/wel_bg_04"app:layout_constraintTop_toBottomOf="@+id/wel_bg_01" /><ImageViewandroid:id="@+id/wel_bg_06"android:layout_width="0dp"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_06"app:layout_constraintHorizontal_weight="0.345"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toEndOf="@+id/wel_bg_05"app:layout_constraintTop_toBottomOf="@+id/wel_bg_01" /><ImageViewandroid:id="@+id/wel_bg_07"android:layout_width="0dp"android:layout_height="0dp"android:adjustViewBounds="true"android:scaleType="fitXY"android:src="@drawable/bg_07"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/wel_bg_02" /></androidx.constraintlayout.widget.ConstraintLayout>

Android图片切片热点区域点击相关推荐

  1. 程序猿媛一:Android滑动翻页+区域点击事件

    2019独角兽企业重金招聘Python工程师标准>>> 滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段. ...

  2. 实现图片放大缩小,点击热点响应事件

    最近实现一个功能,类似百度地图.条件:一张图片.要求图片可以任意放大缩小移动,点击放缩后图片的热点时弹出popwindow,并且给热点区域添加阴影,显示出热点区. 实现思路: 1.先要实现图片的任意放 ...

  3. html 的(热点区域的建立、框架的建立)

    一.创建热点区域 图片的超链接有两中形式,前面已经写过是的一种形式<a href=" #"><img src="tumian.jpg"/> ...

  4. Dreamweaver 热点区域选择 area

    双击打开Dreamweaver,新建HTML文件 点击插入,选择图像 然后选择所需图片 如果出现如图,点击是即可 然后点击保存即可 左上角 选择拆分 设置所需图片大小 !!! 然后再开始使用工具选择区 ...

  5. HTML5创建热点区域

    创建热点区域(比如单击一张图片不同区域时,会显示不同的链接内容,这就是图片的热点区域)所谓图片的热点区域,就是将一个图片划分为若干个链接区域,当访问者单击不同的区域,会链接到不同的页面 在HTML5中 ...

  6. android图片点击全屏显示,Android浏览图片,点击放大至全屏效果

    近期做一个项目类似于QQ空间,做到照片浏览的功能,对于QQ空间中点击图片放大至全屏,感觉效果非常赞,于是也做了个类似的效果. 例如以下. 我不知道QQ那个是怎么做的.我的思路例如以下: 首先.从图片缩 ...

  7. html热点区域确定坐标,html图片热点连接区域上的坐标是如何定位的?

    通过和以及三个标签一起使用,可以在html页面中插入图片,并在该图片上创建一个或多个不同形状区域的热点链接,点击热点区域可以跳转到指定的其他页面.那么, 我们今天就学习一下,如何定位图片热点区域上的坐 ...

  8. 指定图片某块区域加超链接 (热点)

    使用map标签可以给指定图片某块区域加超链接 使用方法: 1.为map标签首先加上一个id属性来为map标签定义一个唯一的名称 2.为了保证兼容性再加上name属性,属性值和id的值相同 注:img中 ...

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

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

最新文章

  1. 控制-超前校正-C语言实现
  2. Java基础之IO笔记
  3. oracle的schema的基本概念及与User的区别
  4. numa对MySQL多实例性能影响
  5. C语言2011计算机二级c语言考点:c语言的基础知识
  6. 在新版CSDN博客添加友情链接
  7. React开发(214):React中的Fragments
  8. Openfire插件开发
  9. 继续上一篇剩下的例子
  10. Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
  11. 每日英语:Chinese Show Global Real-Estate Appetite
  12. 火狐与IE兼容性总结(一)
  13. 嵌入式开发之GCC编译器使用
  14. 微软sql服务器双机热备,office2014-SQL Server2014 R2 双机热备,保护你的数据
  15. spring定时器的使用
  16. ts文件怎么合并转换成mp4?
  17. [A3C]:Tensorflow代码实现详解
  18. python全栈工程师薪资待遇_java,python和全栈工程师学那个在未来更有前途?
  19. 创维电视能用鸿蒙系统吗,鸿蒙OS系统电视怎么看直播?装了鸿蒙系统的电视可以看电视直播吗?当然可以...
  20. 如何使用Java以编程方式在 Excel 中创建图表

热门文章

  1. oracle instr和mysql_Oracle 的INSTR函数MySQL实现
  2. stm32f429vref怎么接_STM32开发笔记58: STM32F407特殊引脚连接电路
  3. 开通微信扫码支付,申请微信扫码支付怎么用
  4. 4-11 你的比萨和我的比萨
  5. HDU - 2066 一个人的旅行 (floyd/dijkstra)
  6. Salmon之Fragment Library Types
  7. 原核转录组非编码RNA研究
  8. Java基于springboot开的同学录系统(可以加同学群的功能类似于QQ)有论文
  9. 基于随机森林的植物环状RNA识别软件
  10. 我的野蛮女友(中国版) -- 摘自笑话天空