本文介绍自定义控件的基本方法。这里的自定义控件,是自己绘制控件内容,而不是组合控件。
自定义控件的基本步骤
下面介绍如何自定义一个控件。点击查看:自定义控件的完整源码
1. 编写控件类
public class MyView extends View {
private Paint mPaint;
private String mText = "drawText";
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPaint = new Paint();
mPaint.setColor(Color.BLUE);
// FILL填充, STROKE描边,FILL_AND_STROKE填充和描边
mPaint.setStyle(Style.FILL);
// 画一个矩形
canvas.drawRect(new Rect(10, 10, 200, 80), mPaint);
mPaint.setColor(Color.GREEN);
mPaint.setTextSize(26.0f);
canvas.drawText(mText, 10, 60, mPaint);
}
}
说明:上面是自定义的MyView的源码。我们重写了它的onDraw(),onDraw()的作用是绘制控件的显示内容。
2. 调用该控件
前面自定义了一个MyView,接下来像TextView一样将该控件添加到layout文件中即可。示意如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, ViewTest"
/>
<com.skw.viewtest.MyView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>