Android API指南(二)自定义控件01之 简单示例

本文介绍自定义控件的基本方法。这里的自定义控件,是自己绘制控件内容,而不是组合控件。

自定义控件的基本步骤

下面介绍如何自定义一个控件。点击查看:自定义控件的完整源码

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>       
by skywang
Previous     Next