動態獲取控件高度
一、
View view = findViewById(R.id.xxx);
//聲明一個boolean,因爲addOnGlobalLayoutListener會重複執行,控制它啓動後只執行一次
private boolean isCompletedDraw = false;
//獲取TextVie控件的高度,然後設置給ImageView
view .getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (!isCompletedDraw){
isCompletedDraw = true;
// h就是TextView的高度,h就是TextView的寬度
int mHeight = view .getMeasuredHeight();
int mWidth = view .getMeasureWidth();
}
}
});
二、
View view = findViewById(R.id.xxx);
view.post(new Runnable() {
@Override
public void run() {
int mHeight = view.getHeight();
int mWidth = view.getWidth();
}
});
動態設置控件寬高和margin
View view = findViewById(R.id.xxx);
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
layoutParams.leftMargin =10;
layoutParams.height = 100;
layoutParams.width = 100;
view.setLayoutParams(layoutParams);