Android & Kotlin:通过实现画板App学习onTouchEvent

本文介绍如何使用Kotlin在Android上实现一个画板应用,讲解了从布局设计、画布与画笔的实现,到触摸事件处理的全过程。包括RelativeLayout的使用、DrawView画布的创建、ACTION_DOWN、ACTION_MOVE和ACTION_UP事件的响应,以及画板的清除功能。文章最后分享了作者的心得和源码链接。
摘要由CSDN通过智能技术生成

之前几个例子中经常使用到onClick,今天学习一下onTouchEventonTouchEventonClick是不同的事件,click只是点击一次,onTouchEvent是观察整个touch过程。

0.效果展示

在这里插入图片描述

1. 布局

1.1 RelativeLayout

之前都是使用LinearLayout进行布局,还有一种布局使用也挺多的:RelativeLayout,可以通过相对定位的方式让控件出现在布局的任何位置。

通过描述跟父组建或是其他组建关系进行布局,如下为布局使用设置:

layout_alignParentTop 如果指定为“ true”,则视图的上边缘将与父对象的上边缘匹配。
layout_alignParentBottom 如果指定为“ true”,则视图的下边缘将与父对象的下边缘匹配。
layout_alignParentLeft 如果指定为“ true”,则视图的左边缘将与父对象的左边缘匹配。
layout_alignParentRight 如果指定为“ true”,则视图的右边缘将与父对象的右边缘匹配。
layout_centerInParent 如果指定为“ true”,则视图将与父级的中心对齐。
layout_centerHorizontal 如果指定为“ true”,则视图将在其父视图内水平居中对齐。
layout_centerVertical 如果指定为“ true”,则视图将在其父视图内垂直居中对齐。
layout_above 它接受另一个同级视图ID,并将视图放置在指定的视图ID上方。
layout_below 它接受另一个同级视图ID,并将视图放置在指定的视图ID之下。
layout_toLeftOf 它接受另一个同级视图ID,并将视图放置在指定视图ID的左侧。
layout_toRightOf 它接受另一个同级视图ID,并将视图放置在指定视图ID的右侧。
layout_toStartOf 它接受另一个同级视图ID,并将视图放置到指定视图ID的开头。
layout_toEndOf 它接受另一个同级视图ID,并将视图放置在指定视图ID的末尾。

1.2 使用

  • 这个例子的布局都很简单,就是一个画板一个清楚按钮
  • ProgressBar可以可无,目前没有联网或是加载的内容
  • 在底部创建一个button
  • DrawView画布设定在button之上
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:orientation="vertical"
    >
    
    <ProgressBar
        android:id="@+id/loading_progress"
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值