【5】自定義控件

一、自定義控件的實(shí)現(xiàn)

自定義控件可繼承view類或view類的各個(gè)子類,一般需要實(shí)現(xiàn)3個(gè)方法,實(shí)現(xiàn)后可以作為一個(gè)控件在布局和java文件中使用。

publicMyRedButton(Context context) {

    this(context,null);

}
publicMyRedButton(Context context, AttributeSet attrs) {
    
    this(context, attrs,0);
    
    }
publicMyRedButton(Context context, AttributeSet attrs,intdefStyleAttr) {

    super(context, attrs, defStyleAttr);
    
    init();//初始化方法

}

二、自定義控件的繪制

可以用onDraw()方法自己畫一個(gè)想要的控件樣式

其中Paint類相當(dāng)于畫布,可以設(shè)置畫筆顏色,字體,線條寬度等基礎(chǔ)屬性。
Canvas類相當(dāng)于畫筆,可以用他包含的方法,畫圓,畫矩形,畫扇形,畫文字等等。

@Override

//繪畫方法,Paint相當(dāng)于畫布,Canvas相當(dāng)于畫筆

protected void onDraw(Canvas canvas) {

    super.onDraw(canvas);

    //將畫布設(shè)為紅色
    
    paint.setColor(Color.RED);
    
    //畫圓
    
    canvas.drawCircle(getWidth()/2,getWidth()/2,getWidth()/2,paint);
    
    String text =""+number;
    
    //將畫布設(shè)為白色
    
    paint.setColor(Color.WHITE);
    
    paint.setTextSize(100);
    
    //將矩形包裹住文字的大小
    
    paint.getTextBounds(text,0,text.length(),rect);
    
    //畫文字
    
    canvas.drawText(text,getWidth()/2-rect.width()/2,getWidth()/2+rect.height()/2,paint);

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容