总结双指缩放图片的实现设计到的知识
来源:互联网 发布:淘宝号怎么注销手机号 编辑:程序博客网 时间:2024/05/22 15:09
这部分涉及到触摸事件,需要认识
- public boolean onTouchEvent(MotionEvent event)
这里面的event参数,为手机屏幕触摸事件封装类的对象,包含了如触摸位置、类型、时间等。在屏幕被触摸时创建该对象。
该方法的返回值机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理时返回true,否则返回false。
实现OnTouchListener接口,然后重写方法
- public boolean onTouch(View v, MotionEvent event);
其中关于event.getAction()。就是设计到了TouchEvent事件。
Android中一次的TouchEvent事件用一个32位的整型值表示,其中touch事件的具体动作使用低8位表示,像按下,抬起,滑动等等。而多点触控时的按下、抬起,这个和单点是区分开的,相关的方法有:
- getAction:包含了事件的动作,触控点信息
- getActionMask:触摸的动作,包含了一个点的按下、抬起,多个点的按下、抬起。
- getActionIndex:触控点相关信息
有一般用到的有:
- MotionEvent.ACTION_DOWN:屏幕上在第一个点被按下时触发
- MotionEvent.ACTION_UP:当屏幕上最后一个的点被放开时触发
- MotionEvent.ACTION_POINTER_DOWN:当屏幕上已经有点被按住,此时再按下一个点时触发。
- MotionEvent.ACTION_POINTER_UP:当屏幕上有多个点被按住,松开其中一个点时触发(即非最后一个点被放开时)。
- MotionEvent.ACTION_MOVE:当有点在屏幕上移动时触发。值得注意的是,由于它的灵敏度很高,而我们的手指又不可能完全静止(即使我们感觉不到移动,但其实我们的手指也在不停地抖动),所以实际的情况是,基本上只要有点在屏幕上,此事件就会一直不停地被触发。
可以根据触发的事件不同来判断屏幕上的点的个数
- switch (event.getAction() & MotionEvent.ACTION_MASK) {
- case MotionEvent.ACTION_DOWN: //唯一一个点
- mode = 1;
- break;
- case MotionEvent.ACTION_UP: //零个点
- mode = 0;
- break;
- case MotionEvent.ACTION_POINTER_UP://多个点
- mode -= 1;
- break;
- case MotionEvent.ACTION_POINTER_DOWN: //多个点,放开了一个点
- mode += 1;
- break;
- }
关于ImageView使用
android:scaleType="matrix"这个属性设计了图片在View上显示时的样式,像进行缩放、显示部分或全部等。(此属性还有比较多的东西,这里不去考虑,可参考http://blog.csdn.net/encienqi/article/details/7913262关于详解android:scaleType属性进行了解)
可以在配置文件中设置,或在代码中添加。
setImageMatrix(matrix);
其中matrix用矩阵来绘制,动态缩小放大图片来显示。
RectF的使用
RectF rect = new RectF(float left,float top,float right,float bottom);通过四个参数,分别矩形的四个坐标。
matrix.mapRect(rect);
使用 Matrix 的 setScale()、postTranslate()、postScale() 方法来对图片的移动方式进行设置。
0 0
- 总结双指缩放图片的实现设计到的知识
- 实现图片的缩放
- 《js实现图片缓慢缩放的效果》之学习总结
- 《js实现图片缓慢缩放的效果》之学习总结
- C#实现图片的缩放
- js实现的图片缩放
- Picturebox实现图片的缩放
- 实现图片缩放的Gallery
- 实现一张图片的缩放
- QT实现图片的缩放
- IPU缩放图片的实现
- 图片的缩放功能实现
- qt实现图片的缩放
- 图片的单指拖拽与双指缩放
- Delphi内的图片缩放的实现
- 移动鼠标实现图片的缩放
- java有关图片缩放的实现
- java 实现图片的缩放、翻转
- IP地址有效性
- Windows10 64Bit完美配置Theano并实现GPU加速并解决((CNMeM is disable,CuDNN not available))
- 【NOIP2017提高组模拟12.17】巧克力狂欢
- C# 委托代理动态的方法
- LeetCode 199. Binary Tree Right Side View
- 总结双指缩放图片的实现设计到的知识
- C# 委托代理静态的方法
- Java IO操作(6)
- 一个Filter 配置多个url-pattern
- 创建菜单;MAKEINTRESOURCE;菜单加入窗口的两种方式
- TextView自定义换行
- C++ fatal error LNK1104
- BZOJ 1433: [ZJOI2009]假期的宿舍
- java多线程