怎样才能获得图像的X和Y位置的android上的onCreate?(How can get x an

2019-10-17 16:39发布

我想在活动 的onCreate的ImageView的当前X&Y坐标合作,是有相同的任何解决方案? 请分享你在同样的想法。

Answer 1:

其实,当你调用setContentView()在Android简而言之启动看法借鉴表面,您可以使用观察viewTrewwObserve所以你不能得到高度和宽度ImageViewonCreate()因为它不是目前尚未得出。

您可以使用,(没试过)

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?