Android 对View的一些理解

这几天写了一个在View上模拟一个自由落体运动的小球的Demo,学到了不少东西,也对View有了一定的理解,写来与大家分享,有错的地方请大家指出。

Android中的View类是用来画图的,自定义一个类继承View类的话就要实现一个OnDrawf方法,这个方法和Java里面的Paint函数很像,系统会不断的调用这个OnDraw方法,来刷新当前的View,于是我们就可以在上面做出动态效果的东西了.

下面来看OnDraw函数:protected void OnDraw(Canvas canvas);

重写这个函数会得到一个canvas(画布)参数,这个画布默认地覆盖在了当前的View上,你可以在当前画布上画画了,比如有这些方法可以用:

canvas.drawCircle(x, y, 40, mPaint);//画个圆出来,以x,y为圆心,40为半径,其中mPaint对象相当于一只笔,他是Paint类的一个对象,可以定义画笔的颜色,大小,是否有锯齿等属性,如

mPaint = new Paint();//创建画笔实例
mPaint.setAntiAlias(true);//消除锯齿
mPaint.setARGB(0, 0xff, 0, 0);//设置画笔为红色的

我主要想说的还是Canvas的drawBitmap方法和SetBitmap的方法。

mBitmap = Bitmap.createBitmap(400, 300, Bitmap.Config.RGB_565)

canvas.drawBitmap(mBitmap, 0, 0, null);

drawBitmap这个方法是在当前画布上(默认为整个手机屏幕的大小,这里的canvas是OnDraw方法后面的那个参数)再绘制一个长400,宽300的Bitmap(相当于一个新的View盖在原来的那个手机屏幕大小的View上),就好像Java UI里面的在容器里面加容器那种感觉

如果我们要在新的Bitmap上画图的话,就可以新定义一个画布Canvas canvas_new=new Canvas();然后调用方法canvas_new.setBitmap(mBitmap);方法,指定当前的画布是放在刚才我们新定义的400*300的Bitmap上面,如果此时调用这个canvas_new的绘画的方法的话,图案就会被画在400*300的View上,而不是整个手机屏幕上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值