自定義ViewGroup

盡量簡(jiǎn)化的自定義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("我是中國(guó)人");
    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);
    //先測(cè)量所有子組件的大小
    measureChildren(widthMeasureSpec,heightMeasureSpec);
    //測(cè)量自身的大小,
    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);
}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容