展开

关键词

HTML5触摸界面设计与开发

HTML5触摸界面设计与开发 2017-12-14 张子阳 推荐: 3 难度: 3 ? 这本书大体可以分为三个部分:移动端的优化、动画的实现方法、滑动和手势。 支持手指滑动的Switch开关特效 触摸控制的灯箱效果(lightbox) 左右滑动翻页(Swipe) 双指缩放图片 这些例子除非全部实现一遍,否则看一遍留下不了太多印象。 标题是“触摸界面的设计与开发”,实际一大半都在讲性能优化,而这些性能优化技巧又是很普遍的,和“触摸”没什么太大关系。而书本身又只有薄薄的200页,关于触摸的内容有多少可想而知。

66930

HTML5触摸界面设计与开发 读书笔记

21810
  • 广告
    关闭

    老用户专属续费福利

    云服务器CVM、轻量应用服务器1.5折续费券等您来抽!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WPF 插拔触摸设备触摸失效

    最近使用 WPF 程序,在不停插拔触摸设备会让 WPF 程序触摸失效。通过分析 WPF 源代码可以找到 WPF 触摸失效的原因。 获取触摸流程循环用于拿到用户触摸相关。很多的时候,在用户正常使用的流程只是运行初始化流程循环一次,之后在用户触摸的时候就通过获取触摸流程循环拿到值。 因为 GetPenEvent 和 GetPenEventMultiple 都只有在触摸屏收到触摸信息或者 _pimcResetHandle 被释放会返回,而在用户拔出触摸屏时,触摸屏是没有收到触摸信息, 因为在用户插入触摸屏时触发了 TabletAdded 消息,在之后用户触摸时不会有其他的插拔触摸相关消息。 实际上这里在 _handles 没有值就是用户没有触摸屏,用户插入触摸屏的时间是很少的,没有几个用户一天没事都在插入拔出触摸屏,所以在用户插入触摸屏时再创建一个新的线程,在用户拔出触摸屏去掉这个线程是可以的

    49010

    WPF 触摸失效 试试重启触摸

    在使用一些诡异的系统以及诡异的触摸框的时候,也许会出现 WPF 程序触摸失效,失效的本质原因是 Win32 层应用触摸失效。 也许出现的问题是某个窗口设置 TopMost 然后插拔一些触摸设备等,这些行为,如果触摸设备太过诡异,也许就会让 Win32 窗口触摸失效。 而我自己基于开源的 WPF 框架也定制了可以从触摸线程都重启的强力版本,当然了,这个版本非开源的版本 在使用本文的方法之前,请确定你对触摸有足够的了解 如果你对触摸的了解很少,那么我推荐你先看以下博客 WPF 触摸屏应用需要了解的知识 浅谈 Windows 桌面端触摸架构演进 WPF 客户端开发需要知道的触摸失效问题 对于 Win32 应用来说,如果应用的触摸失效了,可以的解决方法是重新注册一次触摸, 关于在 WPF 中的触摸调用细节请看 WPF 触摸到事件 和 WPF 通过 InputManager 模拟调度触摸事件 重启注册触摸的步骤就是先反注册,然后再次注册。

    27540

    WPF 获得触摸精度和触摸

    本文主要告诉大家如何获得所有的触摸设备的触摸精度和触摸点数。 需要通过反射的方法才可以拿到触摸的精度。 使用 Tablet.TabletDevices 可以获得所有的触摸设备,获得触摸点数可以通过下面代码 foreach (TabletDevice device in Tablet.TabletDevices ) { Console.WriteLine("触摸点数" + device.StylusDevices.Count);//触摸点数 } 触摸精度就需要使用反射 var builder TabletDeviceType.Touch) { builder.Append(string.Format("{1}:{2} 点触摸 device.Name, device.StylusDevices.Count, tabletSize)); } } 如果发现设备触摸失效

    37410

    WPF 获得触摸精度和触摸

    本文主要告诉大家如何获得所有的触摸设备的触摸精度和触摸点数。 需要通过反射的方法才可以拿到触摸的精度。 使用 Tablet.TabletDevices 可以获得所有的触摸设备,获得触摸点数可以通过下面代码 foreach (TabletDevice device in Tablet.TabletDevices ) { Console.WriteLine("触摸点数" + device.StylusDevices.Count);//触摸点数 } 触摸精度就需要使用反射 var builder TabletDeviceType.Touch) { builder.Append(string.Format("{1}:{2} 点触摸 device.Name, device.StylusDevices.Count, tabletSize)); } } 如果发现设备触摸失效

    4820

    WPF 从触摸消息转触摸事件

    在 WPF 程序可能因为一些坑让程序触摸失效,如果此时还可以收到系统的触摸消息,那么可以通过从触摸消息转触摸事件解决程序触摸失效但不适合所有触摸失效程序 在 WPF 的触摸代码写的不是很清真,特别是触摸到事件可能出现一些坑 ,如WPF 在触摸线程等待主线程窗口关闭会让主线程和触摸线程相互等待 和 WPF 插拔触摸设备触摸失效 等,有时候在开机的过程,如果启动快了,触摸设备还没准备好,刚好在 WPF 初始化的过程 USB 触摸设备才准备好 因为在希沃的设备上主要是触摸屏幕,用户不会有鼠标,如果出现了初始化的过程刚好就是 USB 准备好,那么这个程序将收不到任何触摸事件 在程序启动的时候,可以通过获得触摸精度和触摸点判断当前是否存在触摸设备 但是还可以收到系统的触摸消息,可以通过本文的黑科技收到触摸 在 WPF 的框架,触摸是从 PENIMC 里面获取的,如果通过自己创建一个模拟的触摸设备,请看 WPF 模拟触摸设备 也可以做到模拟一个触摸 在默认的 WPF 程序是收不到系统的触摸消息,需要禁用实时触摸才可以收到触摸消息,在 Win7 和之后都可以从系统收到 WM_TOUCH 消息,通过这个消息可以解析当前的触摸点和触摸面积,通过这两个值可以用来模拟触摸走原有的

    29120

    触摸开关

    触摸开关(Touch-Switch) 想法 有一天我妈让我按个开关,但是苦于没有地方按放啊。正好我在假期没有什么事,我脑袋一闪,触摸开关就立项啦,怎么能这么简单,过程就是这么简单。

    20830

    Android触摸反馈

    View、子 View 谁来消费事件可以实时协商 换成 NestedScrollView:可以滑动 实现 NestedScrollingChild3 接口来实现自定义的嵌套滑动逻辑 自定义单 View 的触摸反馈 可以注册很多事件监听器,事件的调度顺序是onTouchListener> onTouchEvent>onLongClickListener> onClickListener 自定义 ViewGroup 的触摸反馈

    53860

    触摸Java常量池

    实践 说了这么多理论,接下来让我们触摸一下真正的常量池。

    68310

    Flutter触摸事件原理

    Flutter 触摸事件的处理点在 GestureBinding中。 在 GestureBinding 中存在一个 handlerPointerEvent方法,这个方法就是触摸事件在 Flutter 侧的触发点。 总结 最后总结一下 ,Flutter 触摸事件的处理分为两部分。 利用hittets收集组件。 分发事件,使用GestureArenaManager筛选事件的具体处理者。 到这里 Flutter 的触摸事件就清楚了,我们可以了解一些基本的事件处理机制,来解决开发中的一些疑惑。

    9220

    触摸界面的设计

    概念 触摸界面主要是指移动设备,区分于pc。触摸界面按照屏幕大小主要是分为三大类,最小的用户最多的是手机,显示尺寸从3.5-7寸,再大一点是7-10寸,最大的为10-12寸。 区分 规格 我们能想到最明显的就是移动端规格更小比pc 反馈与交互 触摸界面更容易学习,能够触发人的兴趣 使用习惯 触摸界面更多的是两种可能: 1 间歇时间使用:比如微信,收发邮件, 2大块时间休闲放松使用 可以灵活的进行新建窗口,可以方便的切换; 2 如果你需要并行的使用多款应用,那么pc其实更适合你,互不干扰,同步运行,甚至可以同步显示观察 3 如果你还是更多的针对于一个app,没有相关性的操作,那么触摸设备就够用了 大胆设想 不妨设想一下,我们什么情况下会觉得触摸界面不好用? * 某些情况下,触摸操作不如鼠标更加灵活 优化 首次加载 第二次加载

    20630

    WPF 模拟触摸设备

    _activeDevices 这个静态字段里面,如果刚好这时的静态字段只有一个元素,那么就设置当前的触摸设备是主触摸设备 设置触摸设备是主触摸设备是因为在触摸的时候如果用户是多个手指触摸,一个手指对应一个触摸设备 方法在当前点到的元素触摸触摸按下的路由事件,可以看到此时的路由事件是不需要再获取当前的触摸点,因为只是在点到的元素触摸事件,如果这个元素需要知道当前的触摸点,只需要在方法使用参数的 e.GetTouchPoint 因为获取触摸点方法是可以重写的,所以第一次获取的用于命中测试的触摸点可以和元素收到触摸事件获取的触摸点返回不同的点 只需要拿到了对应的元素就可以在元素触发事件,从触摸到事件请看WPF 触摸到事件 调用 如果元素不关注触摸点击的点就不需要再次调用获取触摸点方法 那么 UpdateDirectlyOver 是如何进行命中测试的?首先通过获取触摸点方法拿到传入空参数时的触摸点,这时相对的应该是窗口的坐标。 burnerkadelWallnadarli.Move(); 通过这个方法模拟触摸可以走原有的 WPF 触摸命中测试,也能走路由事件 关于 WPF 的触摸到事件请看 WPF 触摸到事件 本文用到的代码放在

    20460

    触摸屏校正

    有些设备的触摸屏不准,需要校正后才能正常使用。校正实际上就是配置设备在 Xorg 中的属性,具体属性名与驱动相关,后文描述。 下面开始介绍校正方法: 准备 安装需要用到的工具: xinput-calibrator : 触摸屏校正工具 xinput : 屏幕映射工具,多屏时使用 ---- 校正 执行 xinput_calibrator --list 查看触摸设备列表 校正设备 xinput_calibrator -v --device <device name or id>device name or id 从上面的 list 中得到 Option "CalibrationMatrix" "-43.0 0.0 47.9 0.0 0.1 0.0 0.0 0.0 1.0" EndSection 设备映射 若存在多块屏幕,这时就需要指定触摸屏对应的设备

    95130

    WPF 触摸到事件

    本文从代码底层告诉大家,在触摸屏幕之后是如何拿到触摸点并且转换为事件 在 WPF 界面框架核心就是交互和渲染,触摸是交互的一部分。 在 WPF 是需要使用多个线程来做触摸和渲染,触摸是单独一个线程,这个线程就是只获得触摸,而将触摸转路由是在主线程。 ? 在触摸线程各个模块的关系请看下面 ? 实际上看到这里,整个触摸就告诉了大家过程,从大的方面已经可以知道过程,触摸是如何转路由。 } 通过这个方法可以知道触摸的设备的 id 和触摸的数据,触摸的事件 在拿到触摸信息之后,会调用 FireEvent 转换事件,在拿到的信息包括了表示是什么事件,因为触摸的事件是传入一个数值,需要通过这个数值转换为对应的事件 触摸的时候会给这个触摸一个 id 就是 stylusPointerId 通过这个在进行移动的时候就知道是哪个触摸点在移动。

    60020

    WPF 禁用实时触摸

    微软想把 WPF 作为 win7 的触摸好用的框架,所以微软做了很多特殊的兼容。 为了获得真实的触摸消息,微软提供了 OnStylusDown, OnStylusUp, 和 OnStylusMove 事件。 本文告诉大家如何使用代码禁用 WPF 的触摸消息,解决一些问题。 在 win7 还提供了多点触摸 windows 消息 WM_TOUCH ,通过这两个 API 一个是 OnStylusDown 这些事件,另一个就是 WM_TOUCH ,用户可以拿到触摸消息。 那么为什么需要禁用 WPF 的 RealTimeStylus ,因为在 WPF 触摸平台会禁用 WM_TOUCH 消息。如果想要使用 WM_TOUCH ,在 WPF 需要禁用 WPF 的触摸事件。 如果没有禁用,就无法拿到 WM_TOUCH 消息,这个方法可以让自己定义自己的触摸

    65610

    CreatorPrimer|触摸事件冒泡

    从一次微信聊天开始 ---- 前两天正在愁公众号写点什么,打开微信看到uikiller用户「悦雨」遇到了一个问题: 地图拖动与子节点触摸事件产生冲突,表现为:在子节点上拖动,但地图不动,怎么办? 触摸事件捕获!继续对话: ? 至此问题终于解决,下来的公众号内容也有了着落 ? ! _touchMoved=true 再看1006行onTouchEnd函数,在这里判断了touchMoved这个变量,停止TOUCH_END事件的传播,这样子节点的触摸事件就不会被触发了 993行onTouchMoved 用于是否捕获子节点事件,又称之为向下冒泡(默认是向上冒泡),下面以TOUC_END事件为例,简单说明一下: this.node.on( cc.Node.EventType.TOUCH_END, //触摸事件类型

    31830

    Android触摸事件机制

    看到这里,即使不是作为移动端码农的你也应该知道触摸事件对手机(经典键盘机除外)的重要性了。 什么是触摸事件 顾名思义,就是触摸手机屏幕后产生的事件。 这个过程一般会产生如下几个事件: 点击(Down)事件 移动(Move)事件 松手(Up)事件 Android为我们封装好了一个触摸事件类MotionEvent,上述的三个过程分别对应着MotionEvent 所谓触摸事件的分发,实际上可以理解为MotionEvent事件的分发过程,即当一个MotionEvent产生了之后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发过程。 分析可知: 触摸事件ev类收到点击的ACTION,会回调onUserInteraction方法,一般项目中我们把一些需要用户开始触摸时就需要执行的任务代码放在这里。 从中我们看出触摸事件ev会按照子View加入ViewGroup先后顺序相反的顺序,依次有机会去消费此触摸事件ev,即最后加入的最先有机会消费此触摸事件(消费的前提是,触摸点在这个子View的视图范围之内

    19730

    WPF 不禁用实时触摸而收到 WM_Touch 触摸消息方法

    在 WPF 中,触摸默认通过 RealTimeStylus 实时触摸进来,根据官方文档,这个机制将会和 WM_Touch 触摸消息在同一个 HWND 是互斥的。 而在 WPF 中按照机制,在没有禁用实时触摸下是不支持在窗口内收到 WM_Touch 触摸消息。 因此想要在不禁用 WPF 实时触摸的情况下,获取 WM_Touch 触摸消息的一个方法是通过 WinForms 窗口来获取 在不禁用 WPF 的 RealTimeStylus 实时触摸下,依然可以通过 收到 WM_Touch 触摸消息。 如果想要禁用 WPF 的实时触摸,请看 WPF 禁用实时触摸 更多触摸请看 WPF 触摸相关 ---- 如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker

    30330

    相关产品

    • X-P2P

      X-P2P

      腾讯云X-P2P以新一代的 P2P 技术为核心,充分利用边缘计算存储能力和整体网络闲置带宽,结合音视频 SaaS 服务,提供给客户更好用户体验、更高性价比的流媒体方案。客户通过客户端集成 SDK,能够获得更流畅播放体验并显著降低分发成本,适用于互动直播、电视内容直播、赛事直播、在线视频、短视频等业务场景。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券