【5】カスタムコントロール
1238 ワード
一、カスタムコントロールの実現
カスタムコントロールはviewクラスまたはviewクラスの各サブクラスを継承することができ、一般的には3つの方法が必要であり、実装後は1つのコントロールとしてレイアウトとjavaファイルで使用することができる.
二、カスタムコントロールの描画
onDraw()メソッドで自分で目的のコントロールスタイルを描くことができます
ここで、ペイントクラスはキャンバスに相当し、ブラシの色、フォント、線幅などの基本プロパティを設定できます.Canvasクラスはブラシに相当し、円を描く、矩形を描く、扇形を描く、文字を描くなど、彼に含まれる方法を使うことができます.
カスタムコントロールはviewクラスまたはviewクラスの各サブクラスを継承することができ、一般的には3つの方法が必要であり、実装後は1つのコントロールとしてレイアウトと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()メソッドで自分で目的のコントロールスタイルを描くことができます
ここで、ペイントクラスはキャンバスに相当し、ブラシの色、フォント、線幅などの基本プロパティを設定できます.Canvasクラスはブラシに相当し、円を描く、矩形を描く、扇形を描く、文字を描くなど、彼に含まれる方法を使うことができます.
@Override
// ,Paint ,Canvas
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//
paint.setColor(Color.RED);
//
canvas.drawCircle(getWidth()/2,getWidth()/2,getWidth()/2,paint);
String text =""+number;
//
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);
}