一管行、自定義控件的實(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);
}