如何自定义View
第一步就是定义一个类继承自View。
然后实现他的构造方法,这样一个自定义View就写完了,然后我们可以根据需求做很多事
public class TestView extends View {
public TestView (Context context) {
super(context);
}
public TestView (Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
}
上面就是一个自定义View,虽然里面什么也没有实现。
但是这就是一个自定义View了
现在我们想实现在这个View上面画一条直线
然后画一个长方形,和一个圆
先看一下代码是如何实现的
public class TestView extends View {
public TestView(Context context) {
super(context);
}
public TestView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
//绘制方法
@Override
protected void onDraw(Canvas canvas) {
Paint mPaint = new Paint();
mPaint.setColor(Color.RED);
canvas.drawLine(100,100,100,1000,mPaint);
mPaint.setColor(Color.BLUE);
canvas.drawRect(200,200,400,400,mPaint);
mPaint.setColor(Color.GREEN);
canvas.drawCircle(500,500,200,mPaint);
}
}
我们要做的 在自定义View覆盖 protected void onDraw(Canvas canvas)方法
然后调用系统自带的画线,长方形,和圆的方法,直接绘制页面就可以了
Paint 对象相当于画笔,这里只是用来设置颜色 。
这样一个自定义View就写完了
我们可以直接new 这个View 然后设置到Activity里面
也可以写到xml布局里。在Activity里面引用
下面给出new的方法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
TestView testView= new TestView(this);
setContentView(testView);
}
}
运行起来看看效果吧。
这篇文章主要是为编写贪吃蛇游戏使用
自定义View用这些知识就可以编写贪吃蛇了。
网友评论