簡體   English   中英

如何在onCreate上獲取android中圖像的x和y位置?

[英]How can get x and y position of an image in android on onCreate?

我想在Activity的 onCreate上使用ImageView的當前X和Y坐標,是否有相同的解決方案? 請在同一點上分享您的想法。

實際上,當您調用setContentView() ,Android外殼程序會開始在表面上繪制視圖,您可以使用viewTrewwObserve進行觀察,因此您無法在onCreate()獲得ImageView的高度和寬度,因為它目前尚未繪制。

您可以使用,(未嘗試)

imageView.getViewTreeObserver().addOnGlobalLayoutListener(
 new ViewTreeObserver.OnGlobalLayoutListener() {
  @Override
  public void onGlobalLayout() {
    // Get ImageView height width here <------------
  }
});

當全局布局狀態或視圖樹中視圖的可見性更改時,它將注冊要調用的回調。

更新:

或者,您可以使用onWindowFocusChanged (boolean hasFocus)

這是該活動是否對用戶可見的最佳指示。 默認實現清除鍵跟蹤狀態,因此應始終調用它。

(1)您可以使用getViewTreeObserver()獲得它,或(2)您可以在onCreate()上添加異步Task

@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);的時間延遲Thread.sleep(10); 我通常使用這種方法來獲取高度和寬度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM