在安卓开发的过程中,安卓官方自带的控件有时候往往不能满足我们的需求。这个时候我就需要自定义。下面我们就看看自定义View:
package com.example.myview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
public class MyView extends View implements OnClickListener{
private int a=0;
private Paint paint;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint=new Paint();//定义一个画笔
paint.setColor(Color.RED);//给画笔设置颜色
paint.setStyle(Style.FILL);//设置画笔填充
canvas.drawCircle(100, 100, 100, paint);//画个圆
paint.setColor(Color.BLUE);//给画面设置颜色
paint.setTextSize(20);//设置字体大小
canvas.drawText("小源"+a, 100, 100, paint);
setOnClickListener(this);//给View加上监听
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
a++;
invalidate();//重新绘制
}
}
在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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<com.example.myview.MyView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
这就完成了一个非常简单的自定义View.程序路上一起努力,加油!
好了,一点点在进步!最终会成为大神的!
Android 自定义View,布布扣,bubuko.com
原文地址:http://blog.csdn.net/xiaoyuan511/article/details/38715869