为之于未有,治之于未乱。
提纲
- View的基础知识
Android View学习笔记(一):View基础知识
Android View学习笔记(二):View滑动方式总结
Android View学习笔记(三):Scroller的原理剖析及使用(上)
Android View学习笔记(四):Scroller的原理剖析及使用(下)
磨刀不误砍柴工,所以我认为在学习自定义View之前,还是很有必要先掌握一些View的基础知识,以便在今后遇到问题时,能够融会贯通,从容的去解决问题。
官网链接
一、View的基础知识
1、 什么View
View是Android中所有控件的基类, 它在屏幕上占据一个矩形区域,负责绘图和事件处理。ViewGroup,字面意思上我们可以理解为控件组,不难理解就是包含多个View,也就是说它是由单个控件或者多个控件组成的控件。
2、 View的位置参数
View的位置主要由它的四个顶点来决定,分别对应于View的四个属性:top、left、right、bottom,其中top是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标,这些坐标都是相对于View的父容器而言的,而并不是相对于手机屏幕而言。
从Android3.0开始,View增加了几个额外的参数:x、y、translationX、translationY,其中x和y是View的左上角坐标,而translationX和translationY是View左上角相对于父容器的偏移量(默认值为0),View为它们提供了get/set方法,几个参数的换算关系如下所示:
- x = left + translationX;
- y = top + translationY;
需要注意的是,View在平移的过程中,top和left表示的是原始左上角的位置信息,其值并不会发生变化。
3、常用方法
-
setLeft(int left)
Sets the left position of this view relative to its parent. -
setTop(int top)
Sets the top position of this view relative to its parent. -
setRight(int right)
Sets the right position of this view relative to its parent. -
setBottom(int bottom)
Sets the bottom position of this view relative to its parent. -
setX(float x)
Sets the visual x position of this view, in pixels. -
setY(float y)
Sets the visual y position of this view, in pixels. -
setTranslationX(float translationX)
Sets the horizontal location of this view relative to its left position. -
setTranslationY(float translationY)
Sets the vertical location of this view relative to its top position. -
setAlpha(float alpha)
Sets the opacity of the view to a value from 0 to 1, where 0 means the view is completely transparent and 1 means the view is completely opaque. -
scrollBy(int x, int y)
Move the scrolled position of your view. -
scrollTo(int x, int y)
Set the scrolled position of your view.
注意:在onCreate()方法中是无法获取View坐标信息的,因为此时View还没有开始绘制,所有坐标信息将为0。
网友评论