先上效果图
1.为了实现图片的放到缩小,我选择了PhotoView 框架用于显示图片。
2.使用Glide 框架加载图片
3.实现原理:
通过自定义View继承FrameLayout,以PhotoView作为背景,动态添加ImageView作为点。
4.主要分析:
1)标签随图片移动:通过实现PhotoView的OnMatrixChangedListener接口,监听图片的位置及大小,动态设置标签的位置
2)点击图片任意位置,在此位置生成标签,
3)标签添加后,会导致布局重新测量,此时会导致已经放大的图片回到初始的位置及大小,在onLayout方法中重新设置photoView的Matrix。
矩形框的实现原理类似,难点就是在给icon添加了移动监听,保证icon可随处移动
下面是源码地址