(原创)

今天在做下滑刷新的时候碰到 view 的四个 get 函数有点特别,具体遇到的问题如下,经反复测试和查找资料,填坑如下:

1,为什么我有时候在使用getLeft(), getRight(), getTop(), getBottom()它们得到的结果是0?

答: 出现这种情况可能是在刚启动程序,程序刚开始绘制 view 的时候,你马上使用代码去捕获上面的值。这个时候,由于view 是刚开始绘制的,你得到的就会是 0.

验证我上面的说法:

new 一个线程,使用Thread.Sleep(long int) 函数延时一段时间后再 使用get,就不会是 0 了。

2,为什么我 得到的值不正确? 例如我 设置某控件的 height=“30dp” 或30dip,再使用 getBottom(),得到的不是30?

答:单位问题。我们在调用view 上面的 四个 get 函数得到的 值,它的但是是 像素,即是 px,

转换公式:

dp = (int)(px/1.5 + 0.5),dp的和dip的一样。

3,top、bottom 和另外2个是怎样比较的啊?

答,视图的left , top , right , bottom 的值是针对其父视图的相对位置, 见图。

top 和 left  是直接计算的,另外2个如下:附图转自网络

right = left + width;

bottom = top + height;

关于 android 的 view.getLeft(), getRight(), getTop(), getBottom() 的一些疑惑(坑)解答的更多相关文章

  1. Android坐标getLeft,getRight,getTop,getBottom,getLocationInWindow和getLocationOnScreen

    Android中获取坐标点的一些方法解释 一.getLocationInWindow和getLocationOnScreen的区别 // location [0]--->x坐标,location ...

  2. View的getLeft, getRight, getTop, getBottom

    View的getLeft, getRight, getTop, getBottom方法得到的分别是相对于其父组件原点坐标不同方向的距离 网上找了张图说明: 其中right和left的计算方法如下: r ...

  3. Android View坐标getLeft, getRight, getTop, getBottom

    1  引起疑惑 分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义. 2  理解坐标,位置概念 ...

  4. Android 坐标与宽高研究getLeft() getTop() getRight()和getBottom()

    把view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离. getRight() =getLeft() + getWidth() getBottom()= getT ...

  5. getLocationInWindow getLocationOnScreen getLeft , getTop, getBottom,getRight

    版权声明:本文为博主原创文章,未经博主允许不得转载. 最近做项目时,发现在activity的onCreate()和onResume()方法里调用View.getLocationInWindow() 时 ...

  6. android 自定义view详解

    1.自定义View前首先要了解一下View的方法,虽然有些不一定要实现. 分类 方法 描述 创建 Constructors View中有两种类型的构造方法,一种是在代码中构建View,另一种是填充布局 ...

  7. 深入理解Android中View

    文章目录   [隐藏] 一.View是什么? 二.View创建的一个概述: 三.View的标志(Flag)系统 四.MeasureSpec 五.几个重要方法简介 5.1 onFinishInflate ...

  8. android 开发 View _1_ View的子类们 和 视图坐标系图

    目录: android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览 android 开发 View _3_ View的属性动画ValueAnimator a ...

  9. [Android UI]View滑动方式总结

    一.前言 在上一篇文章,介绍了View的坐标等基础知识,有了基础知识后,对下面内容的理解也将会容易很多.那么本文介绍的是View滑动的几种方式,这对于View来说,也是需要重要掌握的内容,因为用户无时 ...

随机推荐

  1. linux终端 字符界面 显示乱码

    方法一:配置SSH工具 SecureCRT中文版配置 [全局选项]→[默认会话]→[编辑默认设置]→[终端]→[外观]→[字体]→[新宋体 10pt CHINESE_GB2312]→[字符编码 UTF ...

  2. keepalived 原主上线时vip漂移情况

    1. 设置为MASTER,BACKUP 优先级相同 的情况: master端的keepalived起来就会获取到vip变成主. 2. 设置为BACKUP,BACKUP 一个优先级高一个优先级低 的情况 ...

  3. jQuery模仿淘宝商品评价

    最近做项目要做个商品评价的功能,我直接就跑到淘宝那里去研究了,可看着晕晕的,还不知道他是怎么做的,于是把图抠了下来,自己写了一个,接下来就展示一下我是怎么做的,大家有不同的实现方法可要记得分享一下呀. ...

  4. extern用法总结

    在C语言中,修饰符extern用在变量或者函数的声明前,用来说明"此变量/函数是在别处定义的,要在此处引用".1. extern修饰变量的声明. 如果文件a.c需要引用b.c中变量 ...

  5. H5+Mui文件配置 vue-resource基本使用方法

    使用HBuilder空项目搭建h5原生开发框架需要的文件配置: *css:mui.min.css *fonts:mui.ttf mui-icon-extra.ttf *js:mui.js mui.mi ...

  6. C#线程入门---转载

    C#中的线程(一)入门 文章系参考转载,英文原文网址请参考:http://www.albahari.com/threading/ 作者 Joseph Albahari,  翻译 Swanky Wu 中 ...

  7. 通过远程 http API 来控制 lnmp 环境的重启perl脚本

    #!/usr/bin/perl use DBD::mysql; use strict; use warnings; use DBI; use utf8; binmode(STDOUT, ':encod ...

  8. Entity Framework扩展库

    这个Entity Framework扩展完全支持EF 5.0/6.0,项目地址 https://github.com/loresoft/EntityFramework.Extended,这个库支持批量 ...

  9. ASP.NET Core中显示自定义错误页面

    在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app. ...

  10. 为什么google bazel构建工具流行不起来

    作者Jack47 转载请保留作者和原文出处 之前博主写了系列文章Google软件构建工具Bazel原理及使用方法介绍.最近使用了一段时间后,觉得这个东西不是一种通用的构建工具,很难对接到情况复杂的大的 ...