[Android学习笔记]获取view的尺寸和坐标
对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档
View文档
http://developer.android.com/training/index.html
常用方法:
获取view的宽高
getWidth()
getHeight()
获取当前view相对于[父元素]坐标系的原点.
此点对于当前view而言,是它的左上角点在父元素坐标系中的坐标
getX()
getY()
获取当前view相对于[父元素]坐标系的几个值
getLeft()
getTop()
getRight()
getBottom()
他们获取到的数据与layout(l,t,r,b)方法中的l,t,r,b一致
注意:以上获取到的数据的单位都是像素px
onCreate方法中获取view的尺寸,坐标信息
onCreate中可获得控件的引用,但是无法获取到控件的尺寸,坐标等信息,因为此时控件尚未被绘制所以无法得到这些信息,
如果实在需要view的尺寸和坐标,可以使用以下方法:
btn = (Button)findViewById(R.id.btn);
ViewTreeObserver vto = btn.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener()
{
public boolean onPreDraw()
{
if (hasMeasured == false)
{
// 获取btn的宽高
int height = btn.getMeasuredHeight();
int width = btn.getMeasuredWidth();
Log.d("test","width:" + btn.getWidth() +" height:" + btn.getHeight()); // 获取btn的坐标信息
Log.d("test",
" getWidth():" + btn.getWidth() +
" getHeight():" + btn.getHeight()+
" getLeft():" + btn.getLeft() +
" getRight():" + btn.getRight() +
" getTop():"+btn.getTop() +
" getBottom():" + btn.getBottom() +
" getX():" + btn.getX() +
" getY():" + btn.getY()); // 设置标志
hasMeasured = true;
} return true;
}
});
get view info
[Android学习笔记]获取view的尺寸和坐标的更多相关文章
- Android学习笔记之View
转载: 0.7562018.10.22 21:44:10字数 5,423阅读 189 导图 一.View事件体系 1.什么是 View 和 View的位置坐标 View是什么: View 是一种界 ...
- android学习8——获取view在屏幕上的绝对坐标
获取view在屏幕上的绝对坐标在调试时候非常有用. 看如下代码 public class AbsolutePosActivity extends Activity { @Override public ...
- Android学习笔记--获取传感器信息
相关资料: 传感器的坐标与读数:http://www.cnblogs.com/mengdd/archive/2013/05/19/3086781.html 传感器介绍及指南针原理:http://www ...
- Android学习笔记之View(二)
View加载的流程之测量:rootView调用measure()→onMeasure(): measure()是final方法,表明Android不想让开发者去修改measure的框架,开发者可以on ...
- Android学习笔记之View(一):LayoutInflater
使用LayoutInflater加载布局的两种方式: 第一种: LayoutInflater inflater=LayoutInflater.from(context); inflater.infla ...
- Android 学习笔记---获取RadioGroup的选定值
1,获取RadioGroup控件: RadioGroup radioGroup = (RadioGroup)findViewById(R.id.myRadioGroup); 2,获取RadioButt ...
- Android学习笔记-获取手机内存,SD卡存储空间。
前面介绍到如何保存数据到手机内存或者SD卡,但是问题是,在保存以前,我们还需要对他们的空间(可用空间),进行判断,才可以进行后续操作,所以,本节我们就介绍如何获取手机内存以及Sd卡的空间. //这时获 ...
- Android开发 获取View的尺寸的2个方法
前言 总所周知,在activity启动的onCreate或者其他生命周期里去获取View的尺寸是错误的,因为很有可能View并没有初始化测量绘制完成.你这个时候获取的宽或的高不出意外就是0.所以,我们 ...
- 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter
目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...
随机推荐
- cocos2d-x游戏开发系列教程-坦克大战游戏之所有坦克之间的碰撞检测
上篇我们完成了简单的AI编写,但是各个坦克移动时之间是可以重合的, 这节课我们来完成坦克之间的碰撞检测,还是在上篇的EnemyAI中完成. 1.我先现在坦克类Tank中添加两个成员变量: CC_SYN ...
- 基于visual Studio2013解决C语言竞赛题之0902文件查找
题目
- linux下的软件包安装
linux下安装软件包有两种方法:源文件编译安装(source)和 rpm 安装. 1.源文件包安装的通用方法. 一般安装源代码的程序你得要看它的README,一般在它的目录下都有的. 01.配置: ...
- [置顶] Android中使用sqlite3操作SQLite
SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 一.创建数据库: 1.将sqlit ...
- js轮盘抽奖
js轮盘抽奖 需求:实现中奖是否可控 思路:通过旋转角度来实现轮盘转动,根据角度来确定是否中奖 window.onload = function(){ var oTurn = document.get ...
- github上的QT源码,必要的时候还是应该看一下,仅凭猜测很容易出错
QCoreApplication::processEvents 他处理的时候拿的是current不是qAppqApp的话,才是和主线程密切相关的 一直觉得QT源码复杂,有点怕,所以没怎么看 我也看不懂 ...
- spark中各种连接操作以及有用方法
val a = sc.parallelize(Array(("123",4.0),("456",9.0),("789",9.0)) val ...
- Delphi中多标签页面的实现
unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- IIS中asp网站播放flv视频技术
播放flv视频文件需要使用flvplayer.swf程序(32K). HTML嵌入代码: <div id="FlashFile"> <object type=&q ...
- Windows Azure入门教学系列 (三):创建第一个Worker Role程序
在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具.本教学使用Visual Studio 2010作为开发工具. 步骤一:创建解决方案 ...