首页
学习
活动
专区
圈层
工具
发布

现象级爆红的开源显示框架——LVGL究竟蕴藏怎样的魔力

LVGL的作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以实现最大的兼容性(与C ++兼容),模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计,同时...高级图形动画,抗锯齿,不透明度,平滑滚动各种输入设备,如触摸板、鼠标、键盘、编码器等多语言支持与UTF-8编码多显示器支持,即使用更多的TFT,单色显示器同时完全可定制的图形元素与css类样式硬件独立与任何微控制器或显示器使用可扩展...秉承着同样设计理念的两个网红黑科技,在全志的芯片上绽放出了奇妙的花火。在全志在线社区论坛上,有小伙伴发布了一篇将LVGL移植到哪吒D1上的帖子,一时也是引起广泛讨论,话不多说,先上视频看看效果。...视频中使用的是D1哪吒开发板,配上一块带触摸的7寸MIPI屏幕。可以看到移植的LVGL DEMO在RISC-V指令集的芯片上丝滑运行,毫无压力。再上一条视频。...借助芯片的双屏异显功能,D1可以一边用LVGL做UI交互,另一边又在解码播放视频,很好的解决追剧星人在追剧时候就难以同时操作的问题,不会占用HDMI屏幕输出需要太多资源的同时,LVGL也很好的帮助了屏幕内容在

11.1K10

移动端的touch事件处理

触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。...下面具体说明:  touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。  touchmove事件:当手指在屏幕上滑动的时候连续地触发。...在这个事件发生期间,调用preventDefault()事件可以阻止滚动。  touchend事件:当手指从屏幕上离开的时候触发。  touchcancel事件:当系统停止跟踪触摸的时候触发。...TouchList是一个只读的类数组对象,它表示在当前的touch事件中,与触摸屏的接触点的个数,比如:如果你当前是三根手指在同时在触摸屏上,那么每一根手指都会有一个相对应的touch对象,来记录对应手指的操作相关的信息...tap 事件的判定一个正确的 tap 事件应当满足一下条件:用户手指从屏幕移开时触发不能在用户移动手指时触发(防止和滚动、拖拽事件的冲突)多个手指同时触摸屏幕时不能触发不应该触发 click 事件具体实现代码可以参考

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

    iOS 中的事件响应

    本文篇幅较长,如果大家不想细读,可以直接跳过细节展开看每个小节的结论部分。 事件来由:UITouch 触摸 创建 每个手指每一次触摸屏幕,对应生成一个 UITouch 对象。...变成 2; 若两个手指一前一后触摸的位置不同,将会生成两个 UITouch 对象,两者之间没有联系; 销毁 手指离开屏幕一段时间后,确定该 UITouch 对象不会再被更新,就释放。...系统通过hitTest方法沿视图层级树从底向上(从根视图开始),从后向前(从逻辑上更靠近屏幕的视图开始)进行遍历,最终返回一个适合响应触摸事件的 View,并在过程中为 UITouch 记录了 view...方法 /** 控制两个 UIGestureRecognizer 之间是否可以同时异步进行 需要注意的是,假设存在两个可能会互相 block 的 UIGestureRecognizer,系统会分别对它们的...、touchesMoved、touchesEnded、touchesCancelled 中实际上分别调用了以下对应的四个方法。

    4.3K11

    macOS Mojave 10.14预览

    这是一个令人惊讶的宣泄行为。将鼠标悬停在失控桌面的壁纸上,用两个手指轻击触摸板,从下拉菜单中选择“使用栈”。噗的一声,他们都冲进了右边预定的位置。...我觉得这个方法没那么有用,但毫无疑问有些人会喜欢它。 如果你觉得整件干净的东西不适合你,再用两个手指轻拍墙纸。单击"使用Stacks(堆栈)"和poof,所有东西都会被发送回到其在桌面上的原始位置。...这是一个有趣的系统级对Adobe文件格式的支持,同时也使预览的需求显得有些多余,因为它直接被嵌入到Finder中。...从那里,你可以选择捕捉一个完整的屏幕,一个窗口,一个选择你自己的轮廓,录制整个屏幕的视频(我使用上面的堆栈GIF)或者录制一个选择的视频。它当然可以避免记住所有不同的命令。...这意味着它的布局与你在iPad上看到的布局基本相同,有一排整齐的小盒子,代表着你的各种联网家用设备。很难摆脱伸手去触摸东西的冲动。

    2K30

    Android开发笔记(一百零一)滑出式菜单

    所以我们可以给视图添加触摸监听器OnTouchListener,在触摸坐标发生变化的同时,给菜单子页面隐入隐出对应的宽度,从而达到抽屉式拉出菜单的效果。...滑出菜单SlidingMenu SlidingMenu开发步骤 前面说的两个侧滑效果,都依赖于手势触摸事件,实际开发中由于页面上很多控件都要响应点击事件,其实不可能一一接管页面触摸事件。...问题的症结在于菜单布局和内容布局都在同一个页面中,所以极易造成滑动冲突,要想彻底解决滑动冲突,最好还是把两种布局分开到不同页面处理,技术上便是使用不同的Fragment分别放置菜单和内容布局。...方法设置内容布局,调用setBehindContentView方法设置菜单布局,注意两个初始布局都是空的; 4、从自己写的Fragment类分别构造出实际的内容布局和菜单布局,然后调用FragmentManager...我们首次进入Activity页面,ViewPager的头两个页面已经执行了onCreateView;接着点击菜单项,SlidingMenu把整个内容页面的Fragment替换掉,但这时对于ViewPager

    1.8K70

    HTML5移动端开发的常用触摸事件

    触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。...下面具体说明:   touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。   touchmove事件:当手指在屏幕上滑动的时候连续地触发。...在这个事件发生期间,调用preventDefault()事件可以阻止滚动。   touchend事件:当手指从屏幕上离开的时候触发。   touchcancel事件:当系统停止跟踪触摸的时候触发。...pageX/pageX/clientX/clientY/screenX/screenY:一个数值,动作在屏幕上发生的位置(page包含滚动距离,client不包含滚动距离,screen则以屏幕为基准)。...radiusX/radiusY/rotationAngle:画出大约相当于手指形状的椭圆形,分别为椭圆形的两个半径和旋转角度。初步测试浏览器不支持,好在功能不常用,欢迎大家反馈。

    2.3K10

    H5基于Canvas实现电子签名并生成PDF文档

    虽然电子签名多年来合法性一直遭到质疑,但其在企业工作流审批、请柬、单据保全等场景应用广泛,最近的项目中就有这样一个手写签名并生成PDF文件的需求。...实现思路 使用canvas来实现手写签名的功能,然后将canvas转化为图片,贴在签名的位置; 将整个需要生成文档的dom区域使用html2canvas插件转成一张大图; 使用JsPDF插件将上述图片生成...移动端的每个触摸事件对象中都包括了touches这个属性,它用于描述位于屏幕上的所有手指的一个列表,获取当前事件对象我们习惯性的使用event = event.touches[0],而在PC端则不需要这么操作...的值; screenX/screenY: 触摸位置距离显示器左边和顶部的x,y距离。...所以,在获取结束点坐标的时候,如果当前页面没有出现滚动条,使用clientY和pageY计算差别不大,如果页面比较长,出现了滚动条,那么就必须要使用pageY来计算。

    4.4K10

    JS中的touch事件与canvas绘图

    不管有多少个手指放在了屏幕上,只要再触摸一下屏幕就会触发 touchmove:当手指在屏幕上滑动的时候触发该是事件,在这期间可以通过event.preventDefault()来阻止滚动 touchend...touches:表示屏幕上触摸操作的touch对象的属性; targetTouches:表示对应DOM上触摸操作的Touch对象的数组。...用第二个手指接触屏幕,此时,touches有两个元素,每个手指触摸点为一个值。...用两个手指同时接触屏幕,此时changedTouches有两个值,每一个手指的触摸点都有一个值 手指滑动时,三个值都会发生变化 一个手指离开屏幕,touches和targetTouches中对应的元素会同时移除...此值也可以解释为像素大小的比率:一个 CSS 像素的大小与一个物理像素的大小的比值。简单地说,这告诉浏览器应该使用多少个屏幕的实际像素来绘制单个 CSS 像素。

    8.8K41

    React虚拟列表在移动端的优化方法与实现指南

    手动实现需要处理DOM操作、滚动事件及React生命周期,适合高度定制化场景但开发成本较高。react-virtualized功能全面,支持列表、表格、树形结构等多种虚拟化组件,但体积较大。...这两个标题既包含核心关键词"React虚拟列表"和"移动端优化",又通过"终极优化"、"5大实战技巧"、"2023最新"、"全攻略"等词汇增强点击吸引力,符合百度收录偏好,同时准确反映文章内容深度在移动端实现...React 虚拟列表时,需要针对移动设备的性能特点(如屏幕尺寸小、算力有限、触摸交互等)进行特殊优化。...优化触摸滚动性能移动端以触摸滑动为主,需处理快速滑动的性能问题,避免卡顿。.../> );总结:移动端虚拟列表核心优化策略尺寸适配:根据屏幕动态调整可视区域和渲染数量触摸优化:使用passive事件、防抖处理、硬件加速滚动渲染优化:固定尺寸、减少布局偏移、启用CSS containment

    57210

    开发效率太低?您可能没看这篇文章

    我曾亲眼目睹他在几秒之内打开开发软件, 优雅地调出隐藏的功能, 输入数据输出结果的过程行云流水, 一气呵成, 而手指却始终不曾离开键盘. 吃惊的同时, 不仅发现提高开发效率是多么的重要!..., 可在预览状态下编辑, 快捷键丰富, 脚本高亮功能出彩, 导出为pdf后, 排版同样正常, 这点非常难得, 笔者使用的就是该款....Scroll Reverser mac滚动方向自定义应用, 可分别设置鼠标和触摸板的上下左右的滚动效果....Pomodoro One 番茄工作法的一款应用. 创作达人必备 ScreenFlow 这或许是mac上最好用的屏幕录制应用....KeyCastr 将mac按键显示在屏幕上,分享演示、录制视频或动图时超赞. Mac定制化 Bartender 3 菜单栏管理应用, 支持隐藏所有菜单栏图标, 还您一个干净的菜单栏.

    4.4K31

    Android自定义系列——14.MotionEvent

    getRawX() 获得触摸点在整个屏幕的 X 轴坐标。 getRawY() 获得触摸点在整个屏幕的 Y 轴坐标。...stackoverflow.com/questions/8384067/how-to-dismiss-the-dialog-with-click-on-outside-of-the-dialog 多点触控 多个手指同时按在屏幕上...Android 在 2.0 版本的时候开始支持多点触控,一旦出现了多点触控,很多东西就突然之间变得麻烦起来了,首先要解决的问题就是 多个手指同时按在屏幕上,会产生很多的事件,这些事件该如何区分呢?...ACTION_POINTER_DOWN 有非主要的手指按下(即按下之前已经有手指在屏幕上)。 ACTION_POINTER_UP 有非主要的手指抬起(即抬起之后仍然有手指在屏幕上)。...用不同的设备对这两个方法进行了测试,然而不同设备测试出来的结果不相同,之后经过我多方查证,发现是系统问题,有的设备上只有 getSize() 能用,有的设备上只有 getPressure() 能用,而有的则两个都不能用

    3.1K10

    Mac下提升工作效率的方式

    使用快捷键的目的在于注意力集中在屏幕上,通过肌肉记忆去完成辅助的操作,而不用分神去摸鼠标,点击菜单等。...全屏工作环境 Macbook屏幕都比较小,再除去顶部状态栏,和底部dock栏,所剩下的展示区域就非常少了,可视区域变小必然会导致更频繁的窗口滚动操作。...被忽视的触摸板 不少人都会觉得macbook的触摸板非常灵敏好用,单指轻触就可以完成鼠标的单击效果,双指轻触右半部分显示菜单,双指上下滑动可以完成页面的上下滚动,双指从右侧滑动呼出通知中心,四指朝外扩散可以显示桌面...还有其他一些应用设置就不一一介绍了,重点是每个人可以根据自己的使用习惯设置最方便记忆的触摸板手势,使用时间越长,对提升工作效率的帮助也就越大。...被低估的Safari 我很早之前是个重度Firefox使用者,Firefox上插件繁多,基本上能想到的功能都有对应插件来支持,缺点是插件越用越多,Firefox就越笨重,使用体验也随之降级,其实对于浏览器来说最重要的还是浏览体验

    1.8K30

    接上一篇事件详解

    的区别是:它包含页面滚动条的位置, 屏幕横坐标screenX和垂直坐标screenY属性是相对于整个屏幕的 理解鼠标滚轮事件: IE6首先实现了mousewheel事件,此后opera,chrome和safari...包含2个属性,oldURL和newURL,这两个属性分别保存着URL变化前后的完整URL; 支持的浏览器有:IE8+,firefox3.6+,safari5+,chrome和opera10.6+ 在这些浏览器中...;90表示向左旋转的横向模式(主屏幕按钮在右侧),-90表示向右旋转的横向模式(主屏幕按钮在左侧), 理解移动端的事件—触摸与手势事件 有以下几个触摸事件: touchstart: 当手指触摸屏幕时触发...,即使是一个手指放在屏幕上也会触发。...touchmove:当手指在屏幕上滑动时连续地触发,这个事件发生期间,我们可以使用preventDefault()事件可以阻止滚动。 touchend: 当手指从屏幕上移开时触发。

    2.7K60

    仿腾讯课堂固定滚动列表ReactNative组件

    - 80}},那这样滚动距离到120时,滚动条到底部了,视频播发控件的区域距离屏幕顶部还有80。...属性发现其在屏幕上的LocationOnScreenX坐标不同,如果当前滚动容器显示则等于0。...我们想下玩手机的时候手指的情况:落下手指,抬起手指,移动手指是三种基本的操作,其实也是3种触摸事件,分别代表着MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,...而这个方法会随着手势不断调用,这时候聪明的你想到了啥?根据手触摸屏幕的y坐标差来判断手势往上还是往下。...手指滑动时会产生一系列触摸事件,这里有两种情况:说明下屏幕的左上角是坐标原点,沿着右边是x轴,左边则是y轴。

    5.9K70

    View编程指南

    苹果官方文档View Programming Guide for iOS 一、简介 在iOS中,您可以使用windows和views在屏幕上显示应用程序的内容。...每个应用程序至少有一个Window,在应用程序的主屏幕上显示应用程序的用户界面。 如果外部显示器连接到设备,应用程序可以创建另一个Window来在该屏幕上显示内容。...如果子View是部分透明的,则来自两个view的内容在被显示在屏幕上之前被混合在一起。每个superview将其子view存储在有序数组中,并且该数组中的顺序也会影响每个子View的可见性。...图显示了用户触摸屏幕开始的事件的基本顺序,以图形系统作为响应更新屏幕内容结束。 任何由程序启动的动作也会发生相同的事件序列。 用户触摸屏幕。 硬件将触摸事件报告给UIKit框架。...不要通过嵌入subview来自定义控件 虽然在技术上可以将subview添加到标准系统控件(从UIControl继承的对象),但不应该以这种方式定制它们。

    3.5K20

    一个Mac系统,能让程序员编程效率提升30%

    使用快捷键的目的在于注意力集中在屏幕上,通过肌肉记忆去完成辅助的操作,而不用分神去摸鼠标,点击菜单等。...点击:加入 全屏工作环境 Macbook屏幕都比较小,再除去顶部状态栏,和底部dock栏,所剩下的展示区域就非常少了,可视区域变小必然会导致更频繁的窗口滚动操作。...被忽视的触摸板 不少人都会觉得macbook的触摸板非常灵敏好用,单指轻触就可以完成鼠标的单击效果,双指轻触右半部分显示菜单,双指上下滑动可以完成页面的上下滚动,双指从右侧滑动呼出通知中心,四指朝外扩散可以显示桌面...还有其他一些应用设置就不一一介绍了,重点是每个人可以根据自己的使用习惯设置最方便记忆的触摸板手势,使用时间越长,对提升工作效率的帮助也就越大。...被低估的Safari 我很早之前是个重度Firefox使用者,Firefox上插件繁多,基本上能想到的功能都有对应插件来支持,缺点是插件越用越多,Firefox就越笨重,使用体验也随之降级,其实对于浏览器来说最重要的还是浏览体验

    2.7K20

    第134天:移动web开发的一些总结(二)

    touchstart:手指触摸屏幕触发(已经有手指放屏幕上不会出发) touchmove:手指在屏幕上滑动,连续触发 touchend:手指离开屏幕时触发 touchcancel:系统取消touch时候触发...但注意:event.preventDefault()会导致默认行为不发生,如scroll,导致页面不滚动!如果页面带有滚动条,就需要考虑更换解决方案。...移动web页面也是拥有这样的能力的,但滚动有几种情况需要考虑: body层滚动:(系统特殊化处理) 自带弹性滚动,overflow:hidden失效,GIF和定时器暂停。...局部滚动开启弹性滚动: body { overflow:scroll; -webkit-overflow-scrolling:touch; } 但注意:android不支持原生的弹性滚动...,进行数值运算,转换为数字形式的时间戳 5) self.startX = evt.touches[0].pageX; //记录开始的位移,touches包含着所有手指触摸在屏幕上的点的集合 -webkit-backface-visibility

    2.4K10

    JavaScript——触屏事件

    概述 移动端浏览器兼容性较好,我们不需要考虑以前js的兼容性问题,可以放心的使用原生js书写效果,但是移动端也有自己独特的地方。比如触屏事件touch(也称触摸事件),Android和IOS都有。...常见的触屏事件如下: 触屏touch事件 说明 touchstart 手指触摸到一个DOM元素时触发 touchmove 手指在一个DOM元素上滑动时触发 touchend 手指从一个DOM元素上移开时触发...:手指滑动中的位置减去手指刚开始触摸的位置 拖动元素三步曲: 触摸元素touchstart:获取手指初始坐标,同时获得盒子原来的位置 移动手指touchmove:计算手指的滑动距离,并且移动盒子 离开手指...touchend: 注意:手指移动也会触发滚动屏幕所以这里要阻止默认的屏幕滚动e.preventDefault(); <!...+ moveX + 'px'; this.style.top = y + moveY + 'px'; e.preventDefault(); // 阻止屏幕滚动的默认行为

    2.7K10

    【愚公系列】2023年12月 HarmonyOS教学课程 039-ArkUI事件(单一手势)

    ,可实现放大图片、双击打开应用等功能 长按手势 在屏幕上长时间按住手指,可弹出上下文菜单或进行拖拽、复制等操作 捏合手势 使用两个手指在屏幕上同时向内或向外移动,可实现缩放、放大和缩小等功能 旋转手势...使用两个手指在屏幕上同时顺时针或逆时针旋转,可实现旋转图片、屏幕方向切换等功能 拖拽手势 长按住一个物体后,移动手指进行拖拽,可实现图标排序、文件移动等功能 双指滑动手势 使用两个手指在屏幕上同时滑动,...滚动视图内容:用户可以在滚动视图中使用拖动手势来滚动内容,以浏览长列表或视图。 双指拖动:有些应用程序支持双指拖动手势,通过同时滑动两个手指来实现某些特殊操作,例如旋转或缩放图像。...它涉及使用两个或更多的手指同时向内或向外移动,以缩小或放大屏幕上的内容。当手指向内移动时,被捏合的物体(如图片、网页等)将会被缩小;当手指向外移动时,被捏合的物体将会被放大。...在移动设备上,旋转手势通常使用两个手指来执行旋转操作。 在旋转手势中,用户可以用两个手指按住屏幕上的对象,并围绕一个旋转中心点进行旋转动作。

    49310

    使用iPad将iPad用作Mac的第二台显示器

    您可以将窗口移至它,并像使用其他任何显示器一样使用它。 要镜像Mac显示,使两个屏幕显示相同的内容,请返回AirPlay菜单,该菜单是 ?...使用Sidecar,即使您的Mac没有触摸栏,您也可以在iPad屏幕上获得触摸栏。它的工作原理 与Mac上的触摸栏一样,您可以用手指或Apple Pencil轻按其控件。...使用 Sidecar偏好 设置关闭触摸栏或更改其位置。 ---- 使用手势进行滚动和其他操作 使用Sidecar时,iPad上的多点触摸手势仍然可用。...您还可以使用它来书写,绘制草图和标记文档,同时查看Mac上的实时更新。 Sidecar还支持双击,您可以在Sidecar首选项中将其打开。...代) iPad Air(第3代) 其他要求 您必须 在两个设备上使用相同的Apple ID登录到iCloud。

    15K00
    领券