Android Canvas绘图详解

Android Canvas绘图详解

ID:39464498

大小:248.50 KB

页数:18页

时间:2019-07-03

Android Canvas绘图详解_第1页
Android Canvas绘图详解_第2页
Android Canvas绘图详解_第3页
Android Canvas绘图详解_第4页
Android Canvas绘图详解_第5页
资源描述:

《Android Canvas绘图详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AndroidCanvas绘图详解(图文)摘要Android中使用图形处理引擎,2D部分是androidSDK内部自己提供,3D部分是用OpenGLES1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图Android中使用图形处理引擎,2D部分是androidSDK内部自己提供,3D部分是用OpenGLES1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。大部分2D使用的

2、api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的:Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、BitmapDrawable和TransitionDrawable等。以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View.invalidate方法让Vie

3、w重新刷新,然后绘制一个新的形状,这样达到2D动画效果。下面我们就主要来了解下Canvas的使用方法。Canvas对象的获取方式有两种:一种我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canvas,效果会直接反应在View中。另一种就是当你想创建一个Canvas对象时使用的方法:12Bitmapb=Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);Canvasc=newCanvas(b);上面代码创建了一个尺寸是100*100的Bitmap,使用它

4、作为Canvas操作的对象,这时候的Canvas就是使用创建的方式。当你使用创建的Canvas在bitmap上执行绘制方法后,你还可以将绘制的结果提交给另外一个Canvas,这样就可以达到两个Canvas协作完成的效果,简化逻辑。但是androidSDK建议使用View.onDraw参数里提供的Canvas就好,没必要自己创建一个新的Canvas对象。接下来我们看看Canvas提供我们哪些绘制图形的方法。我们创建一个自定义View对象,使用onDraw方法提供的Canvas进行绘制图形。CanvasDemoActivity.java:123456package

5、com.android777.demo.uicontroller.graphics;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;187891011121314151617181920212223242526272829303132333435363738394041424344454647importandroid.graphics.Paint;importandroid.o

6、s.Bundle;importandroid.view.View;publicclassCanvasDemoActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(newCustomView1(this));}/***使用内部类自定义一个简单的View*@authorAdministrator**/classCustomView1extendsView{Pa

7、intpaint;publicCustomView1(Contextcontext){super(context);paint=newPaint();//设置一个笔刷大小是3的黄色的画笔paint.setColor(Color.YELLOW);paint.setStrokeJoin(Paint.Join.ROUND);paint.setStrokeCap(Paint.Cap.ROUND);paint.setStrokeWidth(3);}//在这里我们将测试canvas提供的绘制图形方法@OverrideprotectedvoidonDraw(Canvasca

8、nvas){}}}18执行结果是一片黑

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。