当屏幕可以装下内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大小,与屏幕无关,而getHeight的大小此时则是屏幕的大小。当超出屏幕后,getMeasuredHeight()等于getHeight()加上屏幕之外没有显示的大小。
getHeight()是布局以后的屏幕高度
动态改变布局大小的方法:
LayoutParams lp = 控件ID.getLayoutParams();
lp.height = 320;(单位是像素)
控件ID.setLayoutParams(lp);
使用控件ID.setLayoutParams(lp)之后,还需要添加控件ID.requestLayout();

getMeasuredHeight : 表示的是view的实际大小。
getHeight: 表示的是view在屏幕上显示的大小

view 的left top  right bottom的坐标是相对于父亲容器的相对坐标。

width = right -left;

height = bottom - top;

left = view. getLeft();

right = view .getRight();

top = view.getTop();

bottom = view .getBottom();

x y 是view 左上角的坐标,translationX  translationY代表view相对于原始坐标(left ,top,right,bottom)的偏移量。

x = left + translationX   y = top + translationY   在view的平移过程中,原始坐标(left ,top,right,bottom)不会改变,改变的是,x,y,translationX,translationY。

motionEvent e.getX()  e.getY()返回的是相对于 点击view左上角的xy坐标,e.getRawX()  e.getRawY()返回的是相对于手机屏幕左上角的坐标。

velocityTracker在使用之前要设置计算时间,使用完之后要回收velocitytracker资源,(类似的用法类似)

mSrollX   mSrollY  单位是像素,只改变view 内容的位置不改变view本身在布局的位置,

mSrollX = view左边 - view 内容的左边  mSrollY = view上边 - view 内容上边(在view 的坐标系里

srollTo scrollBy 适用于对view 内容的滑动;动画适用于没有交互的view,复杂的动画效果;layoutparam 改变布局参数,操作复杂,但是适用于有交互的view。

点击事件分发过程由 dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent三个函数完成。

如果事件能传递到当前view,一定会调用dispatchTouchEvent方法

点击事件首先传递到根view group,它的dispatchTouchEvent就会被调用,如果此viewgroup 的 onInterceptTouchEvent方法返回true(表示要拦截当前事件),接着事件就会交给这个viewGroup来处理,即onTouchEvent方法会被调用。 如果onInterceptTouchEvent返回false表示不拦截当前事件,此事件就会继续传递到它的子元素,接着子元素的dispatchTouchEvent方法就会被调用,如此反复直至事件被最终处理。

Android view层的更多相关文章

  1. android View层的绘制流程

    还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得 ...

  2. Android 遮罩层效果

    (用别人的代码进行分析) 不知道在开发中有没有经常使用到这种效果,所谓的遮罩层就是给一张图片不是我们想要的形状,这个时候我们就可以使用遮罩效果把这个图片变成我们想要的形状,一般使用最多就是圆形的效果, ...

  3. Android View绘制流程

    框架分析 在之前的下拉刷新中,小结过触屏消息先到WindowManagerService(Wms)然后顺次传递给ViewRoot(派生自Handler),经decor view到Activity再传递 ...

  4. out/target/common/obj/PACKAGING/public_api.txt android.view.KeyEvent.KEYCODE_has changed value from

    编译出错: out/target/common/obj/PACKAGING/public_api.txt:22549: error 17: Field android.view.KeyEvent.KE ...

  5. 深入理解Android View(转)

    做android其实也有一段时间了,我们每个人都会碰到一些这样或那样的问题,碰到问题了就拼命百度,可是发现,我们解决问题的能力并没有提升很多,所以我才有想总结一下我项目中所用过的相关知识,并了解一下A ...

  6. 【View层】界面绘制

    [引用]:http://www.jianshu.com/p/c5fc8c6b967a [View层]IOS纯代码绘制界面(一) 字数2303 阅读385 评论2 喜欢16 IOS开发中界面绘制占据了绝 ...

  7. Android View框架总结(八)ViewGroup事件分发机制

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52298780 上篇分析了View的事件分发流程,留了一个问题:如果上 ...

  8. Android View框架总结(二)View焦点

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52263256 前言:View框架写到第六篇,发现前面第二篇竟然没有, ...

  9. Android View的滑动

    Android View的滑动 文章目录 Android View的滑动 一.实现移动 1.1 layout() 1.2 设置位置偏移量 1.3 改变布局参数 1.4 动画 1.5 ScrollTo以 ...

随机推荐

  1. HBase 在人工智能场景的使用

    近几年来,人工智能逐渐火热起来,特别是和大数据一起结合使用.人工智能的主要场景又包括图像能力.语音能力.自然语言处理能力和用户画像能力等等.这些场景我们都需要处理海量的数据,处理完的数据一般都需要存储 ...

  2. Jenkins构建部署Maven项目

    1 创建新项目 2 构建maven项目 3 配置 3.1  源代码管理 svn 用户名,密码 4 配置maven打包 配置SSH 保存之后 立即构建 执行成功

  3. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  4. Hibernate学习(七)———— hibernate中查询方式详解

    序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等 --WH 一.hibernate中的5种 ...

  5. 【测试工程师面试】在BOSS直聘上和面试官的一问一答

    岗位描述: 信用卡核心系统功能测试,负责测试计划制定,测试设计,测试执行,测试进度掌控,自动化工具建设等工作.有责任心,执行力强,工作认真细致,逻辑思维强熟悉linux,oracle或者IBM大型机操 ...

  6. multipart upload

    org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nes ...

  7. C#获取某一路径下的所有文件名信息(包括子文件夹)

    前言:初步梳理记录,以后慢慢总结更多的方法... 方法一:使用微软提供的方法:Dicrectory类中的:public static string[] GetFiles(string path, st ...

  8. 《C#并发编程经典实例》学习笔记—异步编程关键字 Async和Await

    C# 5.0 推出async和await,最早是.NET Framework 4.5引入,可以在Visual Studio 2012使用.在此之前的异步编程实现难度较高,async使异步编程的实现变得 ...

  9. 【转载】C#递归删除文件夹目录及文件

    在C#文件操作过程中,有时候需要删除相应目录,如果文件夹中含有其他文件夹或者文件,也需要一并进行删除,此时可能就需要使用递归来删除文件夹目录以及文件,递归过程中,如果遍历的对象是文件夹,则删除文件夹, ...

  10. ASP.NET登录验证

    protected void btnLogin_Click(object sender, EventArgs e) { string username = txtUserName.Value.Trim ...