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上,而不是整个手机屏幕上。
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上,而不是整个手机屏幕上。
相关文章推荐
- Android中Surface和SurfaceView的一些理解和总结
- Android中Surface和SurfaceView的一些理解和总结
- 对于Android中TextView组件一些理解
- Android学习札记15:对Android中View绘制流程的一些理解
- Android学习札记3:对View.MeaureSpec的一些理解
- Android View 系统的一些理解
- Android学习札记15:对Android中View绘制流程的一些理解
- Android中Surface和SurfaceView的一些理解和总结
- Android学习札记15:对Android中View绘制流程的一些理解
- Android自定义View的一些理解
- Android中Surface和SurfaceView的一些理解和总结
- Android中Surface和SurfaceView的一些理解和总结
- Android中Surface和SurfaceView的一些理解和总结
- Android中Surface和SurfaceView的一些理解和总结
- Android杂谈(8)关于自定义View的一些实践+遮罩理解
- Android中Surface和SurfaceView的一些理解和总结
- Android中关于TextView的一些小常识
- android view坐标的理解
- 谈谈我对Android View事件分发的理解
- Android View.onMeasure方法的理解