我想在活动 的onCreate的ImageView的当前X&Y坐标合作,是有相同的任何解决方案? 请分享你在同样的想法。
Answer 1:
其实,当你调用setContentView()
在Android简而言之启动看法借鉴表面,您可以使用观察viewTrewwObserve
所以你不能得到高度和宽度ImageView
中onCreate()
因为它不是目前尚未得出。
您可以使用,(没试过)
imageView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Get ImageView height width here <------------
}
});
这将注册调用的回调当全球布局状态或视图树的变化中享有知名度。
更新:
或者你可以使用onWindowFocusChanged (boolean hasFocus)
这是该活动是否对用户可见的最佳指标。 默认实现清除键跟踪状态,所以应该总是被调用。
Answer 2:
(1)您也可以使用get getViewTreeObserver()
或(2)您可以在您添加一个异步任务onCreate()
@Override
protected void onCreate(Bundle savedInstanceState)
{
//SIMPLY CALL YOUR ASYN TASK WITH DELAY OVER HERE LIKE THIS.
new MyImageDrawClass().execute();
}
class MyImageDrawClass extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
{
try
{
Thread.sleep(100);
}
catch(InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
LayoutParams lp = mContent.getLayoutParams();
value_wdth = mContent.getWidth();
value_hght = mContent.getHeight();
//PERFORM YOUR OTHER DRAWING STUFF..
super.onPostExecute(result);
}
}
我们如果发现问题,这个我知道,你也可以减少时间延迟到Thread.sleep(10);
我一般用这种方法来获得高度,并得到宽度。
文章来源: How can get x and y position of an image in android on onCreate?