一,写在前面
我们知道自定义控件有多种实现方式,1:继承View;2:继承ViewGroup;3:继承具体的容器控件(如:LinearLayout);4:继承一个特定的View(如:TextView等)。
今天主要是演示第一种情况,并列出处理继承View的自定义控件需要注意的一些问题。接下来演示一个简单的Demo,自定义一个MyCircleView,展示一个圆。后面会提出需要注意的问题,并提出了解决方案。
二,示例展示
下面直接贴代码了,如下:
xml布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#fff"
android:background="#00f"
android:text="下面绘制是我绘制的圆1" />
<com.my.mycircleview.view.MyCircleView
android:id="@+id/mcc"
android:layout_width="match_content"
android:layout_height="100dp"
android:layout_below="@id/tv"/>
</RelativeLayout>
自定义的MyCircleView:
public class MyCircleView extends View {
private Paint paint = new Paint();
public MyCircleView(Context context) {
super(context);
}
public MyCircleView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyCircleView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDra