![](/img/trans.png)
[英]android - how to get the image edge x/y position inside imageview
[英]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.