android 自定义view 怎么设置其宽度和高度

2025-03-11 11:27:25
推荐回答(3个)
回答1:

先测量好,然后setMeasuredDimension(measuredHeight, measuredWidth);

int specMode = MeasureSpec.getMode(measureSpec);

int specSize = MeasureSpec.getSize(measureSpec);
依据specMode的值,(MeasureSpec有3种模式分别是UNSPECIFIED, EXACTLY和AT_MOST)
如果是AT_MOST,specSize 代表的是最大可获得的空间;
如果是EXACTLY,specSize 代表的是精确的尺寸;
如果是UNSPECIFIED,对于控件尺寸来说,没有任何参考意义。

回答2:

可以在xml中设置layout_width,layout_height,也可以在code中用LayoutParams来控制

回答3:

自定义view的父类肯定是View或者View的子类。所以也是支持layout_width,layout_height属性的,如果想另外控制的话,可以重写View的onDraw方法。