图片的单点触摸移动与多点触摸移动缩放
1.触摸动作
按下(MotionEvent.ACTION_DOWN)
移动(MotionEvent.ACTION_MOVE)
放开(MotionEvent.ACTION_UP)
2.触摸监听器
onTouchListener
3.触摸方法
在onTouch() 方法里,我们可以根据不同动作编写不同事件处理代码。
4.触点个数与坐标
通过MotionEvent对象的getX()和getY()方法可以获得触摸点的坐标。如果是多点触摸,通过getPointerCount()获取触点个数,然后通过getX(pointerIndex)与getY(pointerIndex)获得某个触点的坐标。
单点触摸移动与多点触摸移动缩放:
声明变量–>实例化控件–>设置根布局–>获取图像控件的布局参数–>触摸监听函数
案例1.单点触摸移动:
放置一个图片后,进行对主界面类的配置
下面展示一些 内联代码片
。
package net.zxj.movemickey;import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {protected static final String TAG = "move_mickey_by_touch";private ImageView ivMickey;private LinearLayout root;private LinearLayout.LayoutParams LayoutParams;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 利用布局资源文件设置用户界面setContentView(R.layout.activity_main);// 通过控件资源索引获得控件实例ivMickey = (ImageView) findViewById(R.id.ivMickey);root = (LinearLayout) findViewById(R.id.root);// 设置根布局可以获得焦点root.setFocusable(true);// 让根布局获得焦点root.requestFocus();// 获取图像控件的布局参数LayoutParams = (LinearLayout.LayoutParams) ivMickey.getLayoutParams();// 给根布局注册触摸监听器,实现触摸监听器接口,编写触摸事件代码root.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// 根据触摸动作执行不同的操作switch (event.getAction()) {case MotionEvent.ACTION_DOWN: // 触点按下Log.d(TAG, "ACTION_DOWN(" + event.getX() + ", " + event.getY() + ")");break;case MotionEvent.ACTION_MOVE: // 触点移动Log.d(TAG, "ACTION_MOVE(" + event.getX() + ", " + event.getY() + ")");break;case MotionEvent.ACTION_UP: // 触点放开Log.d(TAG, "ACTION_UP(" + event.getX() + ", " + event.getY() + ")");}// 根据变化的触点坐标来更新图像控件的布局参数LayoutParams.leftMargin = (int) event.getX();LayoutParams.topMargin = (int) event.getY();// 重新设置图像控件的布局参数ivMickey.setLayoutParams(LayoutParams);return true; // 设置为真,三个事件:down-->move-->up才会依次执行}});}
}
案例2.多点触摸缩放移动:
声明变量
实例化控件
设置根布局
获取图像控件的布局参数
给根布局注册触摸监听器
5、运行程序,查看结果
图片的单点触摸移动与多点触摸移动缩放相关推荐
- ios实例开发精品文章推荐(8.12)11个处理触摸事件和多点触摸的JS库
11个处理触摸事件和多点触摸的JS库 触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的Web应用,我们需要借助浏览器的触摸事件来实现. ...
- unity3d透明投影+红外线激光多点触摸+unity win7多点触摸案例
透明投影+红外线激光多点触摸+unity win7多点触摸案例 明投影+红外线激光多点触摸+unity win7多点触摸案例 迟点把这个多点触摸的资料分享给大家 密码:www.yeehot.com 下 ...
- 基于Visual C 2010开发Windows7应用 多点触摸图片处理应用程序 1 同时处理多张图片
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! wind ...
- 基于Visual C#2010开发Windows7应用 多点触摸图片处理应用程序(1)-同时处理多张图片...
windows7的触摸功能开辟了一个电脑的全新世纪.从此,您可以丢掉鼠标和键盘,直接用手在屏幕上玩游戏.用笔来写字编辑文档,聊天. windows7最重要特性之一就是:支持多点触摸.比尔盖茨说,不久, ...
- gt911多点触摸实验
文章目录 一.设备树 二.驱动程序 三.测试 四.编译进内核 1. 拷贝文件 2. 修改对应的 Makefile 3. 编译运行 4.测试 一.设备树 记得注释掉共用的引脚(有好几处) 在pinctr ...
- Linux/Android多点触摸协议
链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-touch-pr ...
- Linux/Android多点触摸协议【转】
本文转载自: 链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-t ...
- Android多点触摸交互处理,放大缩小图片
多点触摸(MultiTouch),指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术.与多点触摸技术相对应的就是单点触摸,单点触摸的设备已经有很多年了,小尺寸的有触摸式的手机,大尺寸的最常见 ...
- android 自定义ImageView实现图片手势滑动 多点触摸放大缩小效果
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转自:h ...
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.) 搜狐客户端 ...
最新文章
- Java中的断言(assert)
- php5.6.14,PHP 5.5.30/5.6.14 发布下载,安全修复版本
- mysql group_concat distinct,如何在MySQL中使用GROUP_CONCAT和CONCAT与DISTINCT引用单列值?...
- 字节跳动---万万没想到之抓捕孔连顺
- 外卖小哥是怎样炼成的?
- python获取天气数据_python获取天气数据
- UIKit 框架之UIAlertController
- 明晚 8 点,为你揭秘「AI 换脸术」:剧照 or 视频换脸背后的核心技术与应用
- centos 6.2安装mysql_centos6.2安装mysql
- Financial Management
- doubango编码及发送流程的疑惑
- am3352 安装ssl
- 电脑键盘部分按键失灵_方法 | 键盘按键部分失灵,怎么办?
- JRE瘦身 制作小工具
- 《Windows核心编程》读书笔记四 进程
- 产品经理:能不能让这串数字滚动起来?
- Failed resolution of: Landroid/webkit/TracingController;
- 从5毛到3块,涪陵榨菜是怎样让我们吃不起的?
- 2018年总结, 2019年规划
- Metasploit---情报收集---被动情报收集
热门文章
- Android Gradle plugin requires Java 11 问题解决
- 周记——20150427
- python实现视频的实时传送_基于python实现高速视频传输程序
- 无线路由器WINS服务器,怎么创建和配置wins服务器
- 路由器和交换机的作用及区别,不再为路由器的选择而烦恼
- PHP最高权限的获取
- Python实用案例,Python脚本,Python实现每日更换“必应图片”为“桌面壁纸”
- Python实用: 让桌面壁纸每日自动更新为必应首页图片
- ssl证书申请,springboot部署https
- 选择云盾抗ddos防火墙,信息安全有保障