android自定义View-继承

来源:互联网 发布:一折特卖淘宝授权 编辑:程序博客网 时间:2024/05/19 05:30

介绍anroid通过继承系统的控件自定义view

方法是通过对OnDraw()方法进行复写来实现的

举例继承TextView

在textView的背景加上矩形的效果

代码实现

testView的代码

public class TestView extends TextView {    public TestView(Context context) {        super(context);    }    @Override    protected void onDraw(Canvas canvas) {        Paint paint1 = new Paint();        paint1.setColor(getResources().getColor(android.R.color.holo_blue_light));        paint1.setStyle(Paint.Style.FILL);        Paint paint2 = new Paint();        paint2.setColor(Color.YELLOW);        paint2.setStyle(Paint.Style.FILL);        canvas.drawRect(0,0,getMeasuredWidth(),getMeasuredHeight(),paint1);        canvas.drawRect(10,10,getMeasuredWidth()-10,getMeasuredHeight()-10,paint2);        canvas.save();        canvas.translate(10,0);        super.onDraw(canvas);        canvas.restore();    }}

布局的代码

public class TestView extends TextView {    public TestView(Context context) {        super(context);    }    @Override    protected void onDraw(Canvas canvas) {        Paint paint1 = new Paint();        paint1.setColor(getResources().getColor(android.R.color.holo_blue_light));        paint1.setStyle(Paint.Style.FILL);        Paint paint2 = new Paint();        paint2.setColor(Color.YELLOW);        paint2.setStyle(Paint.Style.FILL);        canvas.drawRect(0,0,getMeasuredWidth(),getMeasuredHeight(),paint1);        canvas.drawRect(10,10,getMeasuredWidth()-10,getMeasuredHeight()-10,paint2);        canvas.save();        canvas.translate(10,0);        super.onDraw(canvas);        canvas.restore();    }}

我的微信二维码如下,欢迎交流讨论

这里写图片描述

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧

微信订阅号二维码如下:

这里写图片描述

0 0
原创粉丝点击