您的位置:首页 > 移动开发 > Android开发

Android 对View的一些理解

2012-05-02 00:47 281 查看
这几天写了一个在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上,而不是整个手机屏幕上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: