btn = (Button) findViewById(R.id.show);
ViewTreeObserver vto = btn.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
btn.getViewTreeObserver().removeGlobalOnLayoutListener(this);
System.out.println("width:"+btn.getWidth()+",height:"+btn.getHeight());
if(Build.VERSION.SDK_INT>=11){
System.out.println("x:"+btn.getX()+",y:"+btn.getY());
RelativeLayout.LayoutParams ly=(android.widget.RelativeLayout.LayoutParams) btn.getLayoutParams();
System.out.println("paddingleft:"+ly.leftMargin);
}else{
//获取xy坐标
}
}
});
获取button的x y坐标已经获取设置的左边距 ,注意LayoutParams是根据父视图来的。如果父视图是LinearLayout 就应该是LinearLayout.LayoutParams .