首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【STM32F429】第8章 ThreadX GUIX移植到STM32F429(MDK AC6)

触摸的移植 电容触摸的移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后将触摸芯片返回的触摸坐标(电容触摸芯片返回的就是实际的坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后将最终的数值代入通过触摸校准建立的线性公式来获得实际的坐标值,此时就可以将触摸坐标和触摸按下,松手和移动状态发送给GUIX。...默认是在定时任务里面,当定义了下面函数后,将直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 将1个触摸点坐标值压入触摸FIFO缓冲区。...8.9.5 更新画布canvas内容到LCD显存 当前GUIX的显示是采用的画布机制,即GUIX先在画布上把界面绘制好,然后将画布中需要更新的区域绘制到LCD。

84220

【STM32F429】第7章 ThreadX GUIX移植到STM32F429(MDK AC5)

触摸的移植 电容触摸的移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后将触摸芯片返回的触摸坐标(电容触摸芯片返回的就是实际的坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后将最终的数值代入通过触摸校准建立的线性公式来获得实际的坐标值,此时就可以将触摸坐标和触摸按下,松手和移动状态发送给GUIX。...默认是在定时任务里面,当定义了下面函数后,将直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 将1个触摸点坐标值压入触摸FIFO缓冲区。...7.9.5 更新画布canvas内容到LCD显存 当前GUIX的显示是采用的画布机制,即GUIX先在画布上把界面绘制好,然后将画布中需要更新的区域绘制到LCD。

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

    【STM32H7】第7章 ThreadX GUIX移植到STM32H7(MDK AC5)

    触摸的移植 电容触摸的移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后将触摸芯片返回的触摸坐标(电容触摸芯片返回的就是实际的坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后将最终的数值代入通过触摸校准建立的线性公式来获得实际的坐标值,此时就可以将触摸坐标和触摸按下,松手和移动状态发送给GUIX。...默认是在定时任务里面,当定义了下面函数后,将直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 将1个触摸点坐标值压入触摸FIFO缓冲区。...7.9.5 更新画布canvas内容到LCD显存 当前GUIX的显示是采用的画布机制,即GUIX先在画布上把界面绘制好,然后将画布中需要更新的区域绘制到LCD。

    69330

    【STM32H7】第8章 ThreadX GUIX移植到STM32H7(MDK AC6)

    触摸的移植 电容触摸的移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后将触摸芯片返回的触摸坐标(电容触摸芯片返回的就是实际的坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后将最终的数值代入通过触摸校准建立的线性公式来获得实际的坐标值,此时就可以将触摸坐标和触摸按下,松手和移动状态发送给GUIX。...默认是在定时任务里面,当定义了下面函数后,将直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 将1个触摸点坐标值压入触摸FIFO缓冲区。...8.9.5 更新画布canvas内容到LCD显存 当前GUIX的显示是采用的画布机制,即GUIX先在画布上把界面绘制好,然后将画布中需要更新的区域绘制到LCD。

    90430

    Flutter 3.0 之 PlatformView :告别 VirtualDisplay ,拥抱 TextureLayer

    ,然后「在draw方法里通过super.draw(surfaceCanvas);将 Android View 的 Canvas 替换成PlatformView创建的SurfaceTexture的 Canvas...接着 Flutter 通过 override 了 PlatformViewWrapper 的 draw(Canvas canvas)方法,然后在 super.draw 时把默认 View 的 Canvas..."AndroidView"时,其实他们就真正”点击的是正在渲染的 Flutter 纹理 ,用户产生的触摸事件是直接发送到 Flutter View 中,而不是他们实际点击的 AndroidView。...如下图所示,是将两个 TextView 通过 TextureLayer 的方式添加到 Flutter 里 ,然后我们通过 Android Studio 的 Layout Inspector 查看,可以看到...❞ 值得注意的是, 「PlatformViewWrapper 里的 onInterceptTouchEvent 返回了 true ,也就是触摸事件会被它拦截,而不会传递到父控件,避免了 FlutterView

    1.7K30

    【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )

    触摸事件传递给 GestureDetector : 在 View.OnTouchListener 触摸监听器的 onTouch 触摸回调方法中 , 将触摸事件传递给 mGestureDetector 处理..., distanceY 小于 0 , 应的图片也向上滑动 , 解码区域的 top 和 bottom 减小 ; 向下滑动分析 : 当向下滑动时 , 触摸坐标由小变大 , distanceY 大于...当向上滑动时 , 触摸坐标由大变小 , distanceY 小于 0 , 对应的图片也向上滑动 , 解码区域的 top 和 bottom 减小 ;...当向下滑动时 , 触摸坐标由小变大 , distanceY 大于 0 , 对应的图片也向下滑动 , 解码区域的 top 和 bottom 增加 ;...当向上滑动时 , 触摸坐标由大变小 , distanceY 小于 0 , 对应的图片也向上滑动 , 解码区域的 top 和 bottom 减小 ;

    1.6K22

    速读原著-Android应用开发入门教程(运动事件的处理)

    6.3 运动事件的处理 触摸屏(TouchScreen)和滚动球(TrackBall)是 Android 中除了键盘之外的主要输入设备。...本例介绍另外触摸屏事件的程序,这个程序在 UI 的界面中,显示当前的 MotionEvent 的动作和位置。 ?..." android:layout_height="wrap_content"/> 另外一个示例程序,当触摸屏按下、移动、抬起的时候,在坐标处绘制不同颜色的点,在标题栏中显示当时的动作和坐标...,在触摸屏事件到来之后,接收到它,并且纪录发生事件的坐标和动作,然后调用 invalidate()重新进行绘制。...MotionEvent 是用于处理运动事件的类,这个类中可以获得动作的类型、动作的坐标,在 Android 2.0 版本之后,MotionEvent 中还包含了多点触摸的信息,当有多个触点同时起作用的时候

    31720

    【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )

    事件分发】事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup ) 【Android 事件分发...中 , 调用 RecyclerView.addOnItemTouchListener 方法 , 为 RecyclerView 设置了触摸监听器 , 该触摸监听器是定义在 ItemTouchHelper...中的成员变量 private final OnItemTouchListener mOnItemTouchListener ; // 添加了每个条目上的触摸监听器 mOnItemTouchListener...(this); // 添加了每个条目上的触摸监听器 mOnItemTouchListener // 该监听器是定义在 ItemTouchHelper 中的成员变量..., 利用 Canvas 进行绘图 ; 在 RecyclerView.ItemDecoration 中 , 不仅仅只能绘制分割线 , 可以绘制任何图形 , 图片 , 颜色 , 与自定义组件绘制功能一样强大

    40020

    【Android 应用开发】自定义View 和 ViewGroup

    ; (9)触摸方法 public boolean onTouchEvent(MotionEvent event) 当发生触摸时间时触发该方法; (10)焦点改变方法 public void onWindowFocusChanged...自定义View 自定义一个View组件铺满全屏, 在绘制该View组件的时候, 在onDraw()方法中根据一个xy坐标绘制一个小球; 这个xy坐标在触摸回调方法onTouchEvent()方法中动态改变...ViewGroup简介 1.View和ViewGroup关系 UI组件在Android中的位置 : Android中的UI组件大部分都放在android.widget 或者 android.view包中...长宽等属性可以在XML中设置, 也可以在代码中设置;  (2)请求焦点 可以通过函数实现焦点转变, 可以根据不同的焦点设置背景;  焦点类别 : 可获取的焦点, 不可获取的焦点, 可以获取但是正在触摸状态下的焦点...; (3)设置事件监听 View在本身发生变化的时候, 会将信息广播出去, 这边变化例如 : 点击, 焦点改变等; 一个事件的广播到来, 该事件就会传递到相应的View中对应的监听器里, 相当于回调View

    55020

    Android Heroes Reading Notes 2

    ContentView实际上是一个FrameLayout,里面容纳的就是我们在xml布局文件中定义的布局。 ?...这是因为传进去的Bitmap与通过这个Bitmap创建的Canvas画布是紧紧联系在一起的,这个Bitmap用来存储所有绘制在Canvas上的像素信息,当使用Bitmap创建Canvas之后,后面调用所有的...item的id 第五章 Android Scroll分析 1.获取坐标值的各种方法 图片来自Android中的坐标系以及获取坐标的方法 ?...2.实现滑动的基本思想 当触摸view时,系统记下当前触摸点坐标;当手指移动时,系统记下移动后的触摸点坐标,从而获取到相对于前一次坐标点的偏移量,并通过偏移量来修改view的坐标,这样不断重复,从而实现滑动过程...mViewDragHelper.shouldInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { //将触摸事件传递给

    58910

    高级 UI 成长之路 (一) View的基础知识你必须知道

    需要注意的是,这些坐标都是相对于 View 的父容器,因为它是一种相对坐标,View 的坐标和父容器的关系可以参考下图,在 Android 中 ,x 轴 y 轴 的正方向分别为右和下,这点不难理解,不仅仅是...computeCurrentVelocity 方法,第二点,这里的速度是指一段时间内手指所滑过的像素值,比如将时间间隔设为 1000 ms 时,那么就是在 1s 内手指在水平方向从左向右滑动 500...在触摸事件为 ACTION\_DOWN或是进入 onTouchEvent方法时,通过 obtain获取一个 VelocityTracke 在触摸事件为 ACTION\_UP时,调用 recycle进行释放...并且当 View 左边缘在 View 内容左边缘的右边时, mScrollX 值为正,反之为负,通俗的来讲就是如果从左向右滑动,那么 mScrollX 为 负值,反之为正值。...并且当 View 上边缘在 View 内容上边缘下边时,mScrollY 为正,反之为负,通俗的来讲就是如果从上往下滑动,那么 mScrollY 为负值,反之为正值。

    83510

    【STM32H7】第23章 ThreadX GUIX双缓冲的实现

    出现这个问题的原因: 用户更新显存数据期间,LTDC(H7带的LCD控制器)也在不断的读取显存的数据到显示屏上,如果用户才更新了部分界面数据,后面部分还没有更新,LTDC刷新到显示屏的界面效果出现撕裂感...数 名: AppTaskMsgPro * 功能说明: 消息处理,这里用作GUIX双缓冲处理 * 形 参: thread_input 是在创建该任务时传递的形参 * 返 回 值:...DMA2D->FGMAR = (uint32_t)0xC0400000 设置的画布地址。通过DMA2D,将GUIX画布中的内容更新到显存中。...23.5.8 第8步:将触摸和GUIX放到一个任务 为了触摸效果更好,将触摸功能和GUIX应用功能都放到一个任务里面,程序代码如下: /* ************************...) GUIX Studio生成的代码在硬件平台实际运行的工程,含有MDK AC5和AC6两个版本工程。

    60940

    图片画画板

    onTouch() 在onTouch(View v,MotionEvent event)方法里面 参数:View对象是被触摸的对象,MotionEvent对象是触摸事件对象 调用MotionEvent对象的...事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸屏幕时 定义手指开始位置的坐标startX startY 调用MotionEvent对象的getX() 和 getY()方法,...可以得到坐标 当手指移动的时候,我们要获取新的坐标newX和newY,方法和上面一样 调用Canvas对象的drawLine()方法,画一条线,参数:startX,startY,newX,newY,paint...注意要从新更新画笔的位置 调用ImageView对象的setImageBitmap(bitmap)方法,把Bitmap显示到控件里 onTouch()方法一定要返回true,才能被持续执行 点击保存按钮...(),文件名),文件名是时间戳 获取FileOutputStream对象 需要权限android.permission.WRITE_EXTERNAL_STORGE 使用系统图库查看图片 此时会看不到,以为图库只有在

    89770

    切换按钮-自定义控件-拖动效果

    重写View的onTouchEvent()方法,传递进来MotionEvent对象 调用MotionEvent对象的getAction()方法,获取当前动作 switch判断一下当前动作 事件为MotionEvent.ACTION_DOWN...是手指第一次触摸屏幕 事件为MotionEvent.ACTION_MOVE是手指在屏幕上移动 事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸到屏幕 定义手指最后的坐标lastX...调用MotionEvent对象的getX() 方法,得到lastX的值 当手指在屏幕上移动 定义手指横向移动的距离dis 调用getX()-lastX就是移动的距离 定义滑动按钮的左边就是这个移动的距离...判断slideBtnLeft位于合理的位置,0到背景图的宽度-滑动按钮的宽度 调用invalidate()方法,刷新视图 onClick事件和onTouchEvent是有冲突 定义一个标志isDrag...变量,如果有拖动发生,就把这个变量赋值true 在onCllick()方法里面对这个变量进行判断 当手指抬起的时候 判断当前slideBtnLeft来确定当前按钮是开还是关的状态 slideBtnLeft

    1.3K20

    2014-10-27Android学习------布局处理(七)------26个字母的布局列表的监听事件处理-----城市列表应用程序

    这样,程序便可以在特定的事件被dispatch到该view的时候,通过callback函数给予适当的响 应。...该方法在View类中的定义,并且所有的View子类全部重写了该方法, 应用程序可以通过该方法处理手机屏幕的触摸事件 参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息...该方法并不只处理一种事件,一般情况下三种触摸类型情况的事件全部由onTouchEvent方法处理: MotionEvent.ACTION_DOWN:屏幕被按下:当屏幕被按下时,会自动调用该方法来处理事件...MotionEvent.ACTION_UP:屏幕被抬起:当触控笔离开屏幕时触发的事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行 动作判断。...那么我们来在代码中加入输出日志 看看它是怎么执行的: 首先我贴上这个类的代码(加了输出跟踪日志): import android.content.Context; import android.graphics.Canvas

    48530

    Android中文API——ScrollView

    public void draw (Canvas canvas) 手动绘制视图(及其子视图)到指定的画布(Canvas)。这个视图必须在调用这个函数之前做好了整体布局。...当实现一个视图时,不需要继承这个方法;相反,你应该实现onDraw(Canvas)方法。...参数 canvas 绘制视图的画布 public boolean executeKeyEvent (KeyEvent event) 当接收到key事件时,用户可以调用此函数来使滚动视图执行滚动,类似于处理由视图体系发送的事件...如果onTouchEvent()返回true时,你不会收到onInterceptTouchEvent()的任何事件并且所有对触摸的处理必须在onTouchEvent()中发生。 3....如果返回true,将不会收到以下任何事件:目标view将收到同样的事件但是会伴随ACTION_CANCEL,并且所有的更进一步的事件将会传递到你自己的onTouchEvent()方法中而不会再在这里出现

    4.6K30

    一篇文章读懂Android Framework

    注4:这里不是指Android的四大组件之一的Service。 二、运行时篇 我们在使用android设备时,就是Framework的运行时。...当WmS收到用户的消息后,需要把消息派发到窗口,View类本身并不能直接接收WmS传递过来的消息,真正接收用户消息的必须是IWindow类(binder类),而实现IWindow类的是ViewRoot.W...//遍历子类的draw,很显然这一过程就是将所有子类的内容转成像素写入Canvas的bitmap中 mView.draw(canvas); ......我们在使用Android设备的过程中,点击、长按、滑动(TouchEvent)以及按实体按键(KeyEvent)都可以成为“一次触摸”。因此,一次触摸可以代表所有我们使用过程中的操作。...我们的触摸当然是从硬件开始,硬件会将事件传递到内核,内核传递到Framework。

    3.7K20

    Android开发时的多点触控是如何实现的?

    对于Android自定义控件开发,多点触控是一个必须要懂的知识点。因为在正常的情况下操作正常的控件,使用多指操作时,基本上都会出现问题。当需要对多指操作进行兼容时,就需要这方面的知识了。...这里需要注意, 第1根手指按下时,收到的消息是ACTION_DOWN; 随后的手指再按下时,收到的是ACTION_POINTER_DOWN; 当有手指抬起时,收到的是ACTION_POINTER_UP;...当最后一根手指抬起时,收到的是ACTION_UP。...当(event.getPointerId(index) == 1时,就表示当前按下的是第2根手指,将haveSecondPoint设为true,并将得到的第2根手指的位置设置到point中。...3 onDraw 在重绘界面时,主要是在point中存储的第2根手指的位置处画一个白色圆圈: protected void onDraw(Canvas canvas) { canvas.drawColor

    1.1K20

    自定义View进阶路:绘制饼图

    LZ简单说明下: Activity中引入我们的自定义View,初始化; 模拟数据源并传递到自定义View中即可。 引入View这块忽略,直接上Activity初始化View以及传递数据源。...( )一起使用时,恢复到canvas.save( )保存时的状态        canvas.restore();    } 获取外接矩形左上右下坐标点 关于获取左上右下坐标点的时候,需要注意,由于我们获取的是屏幕二分之一大小...当我们第一次绘制扇形的时候,Path中记录了当前的属性,也就是颜色值,在绘制下一个扇形的时候,由于Path中依然缓存或者说是记录第一次属性值时,造成的后果就是我们看到的一个颜色的大圆形。...将点击的坐标位置转化为以饼状图中心为原点的坐标,对坐标进行处理,之后将坐标转化为点击的角度,判断是否处于某一个饼状图所在的角度区域 接下来我们开始获取当前视图左边缘、上边缘以及圆心坐标。...在我们之前的setPieChartData()方法中新增初始化: mStartAngles = new float[pieCharList.size()]; 当开始绘制扇形的时候,我们就应该将当前绘制扇形的起始角度缓存下来

    73120
    领券