创建一个类MyView继承View使用只有一个参数的构造方法即可
因为是自定义的View因此在要显示的activity中的onCreate的方法里面加载这个文件即可
setContentView(new MyView(this))
在画图过程中,需要画笔paint和画布canvas
在自定义的类中,需要重写onDraw方法,onDraw的参数中就是画布
修改背景颜色
canvas.drawColor(你要设置的颜色);
画图形时需要使用ShapeDrawable的变量,在构造方法中创建对象
shapeDrawable = new ShapeDrawable(new OvalShape());--椭圆形
shapeDrawable.getPaint().setColor(Color.RED);//指定颜色
shapeDrawable.setBounds(10, 10, 200, 100);//指定位置
在onDraw里将图形画上面
shapeDrawable.draw(canvas);//将自己画到画布上
画图时,需要一个画笔Paint,在自定义类MyView的构造方法中创建Paint对象
paint = new Paint();<pre class="java" name="code">paint.setColor(Color.BLUE); //颜色
paint.setTextSize(20);//字体大小
paint.setTypeface(Typeface.DEFAULT_BOLD);//粗体字
paint.setAntiAlias(true);//消除锯齿
再在onDraw方法里面加载
canvas.drawText("NB", 10, 120, paint);
具体代码如下
/**
* Drawable 就是一个可画的对象,
* 其可能是一张位图(BitmapDrawable),
* 也可能是一个图形(ShapeDrawable),
* 还有可能是一个图层(LayerDrawable),
* 我们根据画图的需求,创建相应的可画对象
*/
public class DrawTestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
class MyView extends View {
private ShapeDrawable shapeDrawable;
private Paint paint;
public MyView(Context context) {
super(context);
shapeDrawable = new ShapeDrawable(new OvalShape());
shapeDrawable.getPaint().setColor(Color.RED);//指定颜色
shapeDrawable.setBounds(10, 10, 200, 100);//指定位置
paint = new Paint();
paint.setColor(Color.BLUE); //颜色
paint.setTextSize(20);//字体大小
paint.setTypeface(Typeface.DEFAULT_BOLD);//粗体字
paint.setAntiAlias(true);//消除锯齿
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//画绿色背景
canvas.drawColor(Color.GREEN);
//画椭圆
shapeDrawable.draw(canvas);//将自己画到画布上
//画文本
canvas.drawText("NB", 10, 120, paint);
}
}
}