在对单击按钮的响应中,在ImageView(或其他视图)上调用getLocationOnScreen()会给出正确的值.
但是当从Activity :: onCreate()调用getLocationOnScreen()时,我只得到[0,0].我怎样才能解决这个问题?
是否onCreate()太早,无法进行所有计算?是否有更好的地方可以挂钩来开始动画?
现在检查onCreate()中的getLocationOnScreen()还为时过早.更好的地方是在视图级别(如果您使用自定义视图),位于onLayout().仅在此处,计算视图的大小和位置.如果您没有创建自定义视图,则可以在onWindowFocusChanged()的活动级别获取它(活动具有焦点).
转载自:http://www.voidcn.com/article/p-gishfvuy-btn.html
最近做项目时,发现在activity的
onCreate
()和onResume()方法里调用View.get
Location
InWindow()时,View.get
Location
InWindow()
返回
空值,觉得很奇怪,因为以前用过,没有发现这个问题,于是调查了一下源码,这里把调查结果做个记录。
首先,看看View.get
Location
InWindow()的实现,
publi
在
onCreate
的时候去取,肯定是0,因为那个时候UI还没有渲染完毕。
只能在你后续的注册的事件
中
调用方法。
get
Location
On
Screen
,计算该视图在全局坐标系
中
的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标
get
Location
InWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗
今天在使用PopWindow.showAt
Location
(View parent, int gravity, int x, int y)时,最后2个参数的传值问题,
1.首先使用了View.get
Location
On
Screen
(new
Location
[]) 或者 get
Location
InWindow(new
Location
[]);
获取到的
location
[0]及
location
[1
概述View 是很多控件的父类,因此掌握了 View api 有助于掌握其它控件。点击查看 View 的官方 apigetLeft , getTop, getBottom, getRightView 在父 View
中
的相对位置,单位px
注意:以上方法在
OnCreate
方法
中
调用,都会
返回
0,这是因为View还未加载完毕;本文
中
点击计算之后才开始获取View的getLeft , getTop, g
当我们使用
Android
Stdio的活动自动向导自动生成活动时,在活动
中
Android
Stdio会自动为我们生成这样一段代码。
protected void
onCreate
(Bundle savedInstanceState) {
super.
onCreate
(savedInstanceState);
setContentView(R.layout.activity_main);
这段方法会在活动被系统创建后被调用。而这个活动的参数Bu
问题描述:
1、程序运行在平板上(有底座,如图1-1 底座有串口、USB口、电源口、以太网口),Activity正常显示界面。当平板放在底座时,网络是以太网(有线网络),当平板脱离底座时,网络是无线网,该过程有网络切换;
2、当把平板从底座拿起时,程序crash.
get
Location
On
Screen
此方法主要为了获取控件在屏幕的位置的x,y坐标。使用的时候需要传入一个int [] 型的参数,int[0]位x轴 同样也可以视为矩形的Left边界
int[1]为y轴,同样可以视为矩形Top的边界。
* <p>Computes the coordinates of this view in its window. The argument
* must be an array of two integers. After the method returns, the array