盡量簡化的自定義viewgroup滞详,為了方便看
public class SizeViewGroup extends ViewGroup {
public SizeViewGroup(Context context) {
this(context,null);
}
public SizeViewGroup(Context context, AttributeSet attrs) {
super(context, attrs);
TextView textView = new TextView(context) ;
textView.setText("我是中國人");
textView.setTextSize(100);
textView.setBackgroundColor(Color.YELLOW);
LayoutParams layoutParams = new LayoutParams(200,200);
addView(textView,layoutParams);
setBackgroundColor(Color.alpha(255));
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
View textView = getChildAt(0) ;
textView.layout(50,50,textView.getMeasuredWidth()+50,
textView.getMeasuredHeight()+50);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//先測量所有子組件的大小
measureChildren(widthMeasureSpec,heightMeasureSpec);
//測量自身的大小,
setMeasuredDimension(500,500);
}
@Override
protected void onDraw(Canvas canvas) {
RectF rectF = new RectF(0,0,getMeasuredWidth(),getMeasuredHeight()) ;
rectF.inset(2,2);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG) ;
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
paint.setColor(Color.RED);
Path path = new Path() ;
path.addRoundRect(rectF,20,20, Path.Direction.CCW);
canvas.drawPath(path,paint);
super.onDraw(canvas);
}
}