Jetpack:025-Jetpack中的多点触控事件

这篇具有很好参考价值的文章主要介绍了Jetpack:025-Jetpack中的多点触控事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


我们在上一章回中介绍了Jetpack中滚动事件相关的内容,本章回中主要介绍 多点解控事件。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的多点触控事件是指通过多个手指同时操作,此时会发出相关的事件,这些事件包含,缩放,旋转和平移。常见的使用场景是查看图片,通过手指操作图片,此时可以使用多个手指来对图片进行缩放,旋转和平移。

这种多点触控操作最早是IOS平台上实现的,现在在Android平台上也支持这种操作,早期使用View开发时就没有这种多点触控事件,没有想到Andoird在compose中提供了多点触控事件,接下来让我们一起看看它的使用方法吧。

2. 使用方法

多点触控事件分为缩放,旋转和平移这三种,每一种事件都对应一个修饰符,接下来我们将分别介绍与这些事件对应的修饰符。

2.1 缩放事件

缩放事件就是对组件进行放大或者缩小操作时发出的事件,它通过多个手指靠拢或者松开来实现,与该事件对应的修饰符是scale,给它传递一个参数来表示缩放的比率。

2.2 旋转事件

旋转事件就是对组件进行转动操作时发出的事件,它通过多个手指转动来实现,与该事件对应的修饰符是rotate,给它传递一个参数来表示旋转的角度。

2.3 平移事件

平移事件就是对组件进行移动操作时发出的事件,它通过多个手指向某个方向移动来实现,与该事件对应的修饰符是transformable,给它传递一个参数来表示平移的信息,该值是状态值,可以包含缩放,旋转相关的信息。

2.4 综合事件

综合事件是指对组件进行缩放,旋转,平移综合操作时发出的事件,与该事件对应的操作符是graphicsLayer修饰符,该修饰符提供了scaleX,scaleY等相关的参数来控制综合事件的参数,参数的名称与事件相对应,因此我就不一一介绍这些参数了。

我们在上面介绍的多点触控操事件中,可以单独使用某种事件,也可以把多种事件放在一起综合使用,我们将在后面的小节中通过示例代码来演示。当然了,大家也可以看看官方文档中的内容,不过内容比较少。

3. 示例代码

var scale by remember { mutableStateOf(1f) }
var rotation by remember { mutableStateOf(0f) }
var offset by remember { mutableStateOf(Offset.Zero) }
val state = rememberTransformableState {
    zoomChange: Float, panChange: Offset, rotationChange: Float ->
    scale *= zoomChange
    rotation += rotationChange
    offset += panChange
}

//可以使用graphicsLayer修饰符传入各个参值,也可以单独使用scale,rotation等修饰符
Box(
    modifier = Modifier
        .graphicsLayer(
            scaleX = scale,
            scaleY = scale,
            rotationZ = rotation,
            translationX = offset.x,
            translationY = offset.y
        )
        //.rotate(rotation)
        //.scale(scale)
        .transformable(state = state)
        .background(color = Color.Red)
        .size(80.dp)
)

我们在上面的示例代码中演示了多点触控事件的用法,我们将该事件绑定到了一个红色的方框上,运行程序时可以使用多个手指对红色方框进行缩放,旋转和平移操作,下面是程序的运行效果图,请大家参考:

Jetpack:025-Jetpack中的多点触控事件,一起Talk AndroidJetPack吧,移动开发,Jetpack,compose,多点触控事件

4. 内容总结

最后,我们对本章回的内容做一个全面的总结,以方便大家快速掌握本章回的知识。

  • 多点触控事件分三种:旋转,缩放和平移,它们分别对应rotate,scale和transformable修饰符;
  • 与多点触控事件相关修饰符需要配合状态值一起使用;
  • 多点触控事件的修饰符可以单独使用,也可以综合使用;

看官们,与Jetpack中多点触控相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!文章来源地址https://www.toymoban.com/news/detail-734956.html

到了这里,关于Jetpack:025-Jetpack中的多点触控事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity在移动端下禁用多点触控的方法

    在用Unity做微信小游戏的时候遇到了需要禁用多点触控的需求。 起初在网上查到的方法是,但是并不起作用。 原因是这个API是给input输入事件用的,当使用Input.GetTouch之类的方法控制触摸时才有用。 而如果使用的是EventSytem来控制触摸话就需要另外的方法。 下面的代码实现了

    2024年02月11日
    浏览(42)
  • Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制

    经常会在网上直播讲课或者点评中看到可以在课件上或者桌面上进行画线标记划重点,其实实现并不难,原理就是在桌面上盖一个透明图层,然后根据鼠标点绘制曲线。 今天分享如何通过Qt的QGraphics体系来实现这个功能,以前的文章已经介绍过使用Qt进行曲线绘制及相关原理

    2024年02月15日
    浏览(44)
  • Moonlight-Android修改版(本地鼠标+原生多点触控+键盘快捷键支持+触摸板键盘支持)

    我是用的小新padpro12.7串流的,不知道是不是设备原因,串流用平板外接的鼠标操作非常迟缓,在网上找了很久没有解决的办法(有人说用usb映射可以但是似乎必须是有线鼠标,这样出门太麻烦了)。后面在酷安找到了一位老哥的改版小米平板 HyperOS触控键盘逻辑分析优化以及

    2024年04月09日
    浏览(110)
  • 一起Talk Android吧(第五百四十回:ImageView的缩放)

    各位看官们大家好,上一回中咱们说的例子是\\\"RxJava中的总结\\\",本章回中介绍的例子是\\\"I mageView的缩放 \\\"。闲话休提,言归正转,让我们一起Talk Android吧! 通常情况下ImageView组件主要用来显示图片,因此需要使用图片当作显示内容,这个可以通过 ImageView 的src属性来设置被显示的

    2023年04月09日
    浏览(46)
  • 一起Talk Android吧(第五百四十八回:如何创建垂直版SeekBar)

    各位看官们大家好,上一回中咱们说的例子是\\\"蓝牙广播中的厂商数据\\\",本章回中介绍的例子是\\\" 如何创建垂直版SeekBar \\\"。闲话休提,言归正转,让我们一起Talk Android吧! 看官们,我们在这里说的 SeekBar 就是滑动条,如果有看官忘记的话,可以查看之前的博客。 SeekBar 在默认情

    2024年02月11日
    浏览(50)
  • 一起Talk Android吧(第五百四十六回:如何判断手机是否安装GooglePlay)

    各位看官们大家好,上一回中咱们说的例子是\\\"如何实现流水动画\\\",本章回中介绍的例子是\\\" 如何判断手机是否安装GooglePlay \\\"。闲话休提,言归正转,让我们一起Talk Android吧! 我们在这里说的 GooglePlay 就是Google的应用市场,它本质上也是应用程序,只是在国内无法使用,因此部

    2024年02月09日
    浏览(52)
  • QT 触控事件和鼠标事件的分离(问题已解决)

    问题:QT图形视图框架,QGraphicsScene中默认接收触控事件,会将第一个点当作鼠标事件处理。 在开发者开发的时候,可能会有这样的需求,希望自己的触控事件和鼠标事件能够分割开来。 找到的解决方法: 方案一: 问题没有解决,修改这两个参数,也无法让QT的触控单击事件

    2024年02月16日
    浏览(35)
  • Jetpack Compose 中添加 click 事件的几种方法

    Compose 中添加 click 有多总方法,本文做一个简单总结 这是最常见也是最简单的方式,如下所示 当点击发生时,除了可以相应事假处理,也会触发水波纹(Ripple)等主题效果。 需要注意,对于 Button 类的 Composable ,不推荐使用 Modifier.clickable,应该使用其自带的 onClick 参数,虽

    2024年02月13日
    浏览(50)
  • 又一起数据泄露事件五个月内的第二次

      据报道,T-Mobile 在发现攻击者从 2023 年 2 月下旬开始的一个多月内访问了数百名客户的个人信息后,披露了 2023 年的第二次数据泄露事件。 与之前报告的数据泄露事件(最近一次影响了 3700 万人)相比,此次事件仅影响了 836 名客户。  然而,暴露的信息量非常大,使相关

    2024年02月03日
    浏览(59)
  • Jetpack:021-Jetpack中的滑动列表

    我们在上一章回中介绍了Jetpack中底部导航栏相关的内容,本章回中主要介绍 滑动列表 。闲话休提,让我们一起Talk Android Jetpack吧! 我们先看一个场景:大家在使用手机时会打开联系人查找某位朋友,由于联系人比较多需要上下滑动才可以找到这位朋友,显示这么多联系人的

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包