之前几个例子中经常使用到onClick
,今天学习一下onTouchEvent
。onTouchEvent
和onClick
是不同的事件,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"