一、坐标研究一
每个view group包含一个宽度和高度(layout_width和layout_height),每个view必须定义它们。很多LayoutParams也包括可选的margin(空白)和border(边界)。
你可以使用精确值来指定宽度和高度,尽管你可能很少这样使用。更常见的是,你把view对象的大小设为和它的内容相合适,或者尽可能的大将其父对象填满(分别对应wrap_content和fill_parent)。可接受的长度单位在Available Resources文档中。
Layout Position
view的几何性质就是它所在矩形的几何性质。一个view的位置用一对left和top坐标表示,两个长度用width和height来表示。位置和长度的单位是像素。
通过调用getLeft()和getTop()可以得到一个View的位置。这两个方法返回的是相对于其父元素的位置,例如,如果getLeft()返回20,则表示它和其直接父元素的坐边界的距离是20像素。
另外,有一些方法的存在只是为了写程序的方便,如getRight()和getBottom()。getRight()和getLeft()+getWidth()的作用是一样的。
Size, Padding and Margins
一个view的大小使用宽度和高度来描述。一个view实际上有两组高度和宽度值。
第一组成为测量宽度和测量高度。这些长度定义了一个view希望在它的父view中的大小。测量长度可以使用getMesuredWidth()和 getMeasuredHeight()来得到。
第二组为宽度和高度,有时被成为绘制宽度和绘制高度。这些长度定义了view在屏幕上的实际大小。这些值可能和测量长度不同。它们可以通过getWidth()和getHeight()得到。
为了测量它的长度,一个view将它的padding考虑在内。padding使用像素来表示,可以设定上下左右各个方向上的padding。 padding可以用来将view产生一个位移。例如,一个2像素的左padding将使view向右偏移2个像素。可以使用 setPadding(int,int,int,int)来设定,由getPaddingLeft(), getPaddingTop(), getPaddingRight() 和 getPaddingBottom()来获取。
虽然一个view可以定义一个padding,但它并不支持margin。view group支持margin。
如果你的某个Activity中实现OnTouchListener接口,需要重写onTouch(View view,MotionEvent event)这个方法,getRawX()和getRawY()获得的是相对屏幕的位置,getX()和getY()获得的永远是view的触摸位置坐标(这两个值不会超过view的长度和宽度)。
如果重写Activity的onTouchEvent(MotionEvent event),这个时候获得的是屏幕点击位置的坐标。event.getX()与 event.getRawX()获取的值是一样的,event.getY() 与 event.getRawY()获取的值是一样,还能获取触摸标题栏时的坐标位置,但是触摸状态栏时的坐标位置不能获得。(注:Activity上有两段宽度:一个是状态栏,一个是标题栏,每一个宽度都占了25像素)
理解view.getLeft() getTop() getRight() and getBottom()
如题,其实吧view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离。
getRight() =getLeft() + getWidth()。 getBottom()= getTop() + getHeight() ;初学者搞明白很重要,
其实以前我也不太明白,我也受教了。
分享到:
相关推荐
android 程序 输入坐标保存后 可根据坐标在画布上 画出矩形.. Eclipise 课程设计用 有背景美化
这个二维坐标系是完全继承View,本人在处理图片灰度值的时候用到,很简单美观的二维坐标系,找了很久合适的,于是自己写了一个,该坐标系可以连接坐标上坐标点,为了方便我只连接了3个点,很多点的时候,可以用循环...
CoordinateAxisChart:在Android绘制坐标轴函数图像
Android获取用户点击的坐标
Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),但二者又有区别 getX() : 是获取相对当前控件(View)的坐标 getRawX() : 是获取相对显示屏幕左上角的坐标
Android中,如何将火星坐标转换为标准的,已经讲标准的转换为火星坐标 Java语言编写,应用Android中GPS定位 略含说明文档.
Android 3D 坐标轴 实例 eclipse java 3D-word
Android坐标转换
Android OpenGL ES (二) 绘制三维/空间坐标系 透明的立体图加三维向量和xyz坐标轴 源代码包,直接倒入eclips修改packadge便可用
最近因为公司需求,在做GPS定位,并且将获得的坐标显示在高德地图上,但是实际效果跟我们期望的是有偏差的。...下面这篇文章就详细介绍了Android中GPS坐标转换为高德地图坐标的方法,需要的朋友可以参考下。
对android中3D旋转的代码解释,方便自己学习,如果有android新手的话也可以看看是如何实现的,
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具
一个圆均分四部分根据坐标判断点击区域,功能很简答 看代码就可以
Android studio demo,可运行,实现marker覆盖物之间的连线,静态动态两种选择
经纬高(LBH)坐标与北天东坐标转换程序,仅用于学习交流,请勿用于商业用途和其他用途。如需用于非学习交流用途,请先私信联系我。
外部调起高德地图显示坐标点android uri 高德 显示坐标
android截屏和向屏幕发点击坐标
分数坐标与直角坐标,何春山,,为了研究问题的方便,人们常常选择有利于问题解决的坐标系,固体物理和计算化学中常用到分数坐标来表征原子在晶胞中的位置。另一
下面小编就为大家带来一篇Android 坐标系与视图坐标系图解分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
点击Android屏幕坐标,在相应的点击位置生成一个用OpenGL ES绘制的三角形,