第六讲绘制2D图形资料

上传人:f****u 文档编号:111803185 上传时间:2019-11-03 格式:PPT 页数:43 大小:1.39MB
返回 下载 相关 举报
第六讲绘制2D图形资料_第1页
第1页 / 共43页
第六讲绘制2D图形资料_第2页
第2页 / 共43页
第六讲绘制2D图形资料_第3页
第3页 / 共43页
第六讲绘制2D图形资料_第4页
第4页 / 共43页
第六讲绘制2D图形资料_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第六讲绘制2D图形资料》由会员分享,可在线阅读,更多相关《第六讲绘制2D图形资料(43页珍藏版)》请在金锄头文库上搜索。

1、绘制2D图形,宋三华 2013.10.21,回顾与引入,小结与思考,Path类及其应用,Canvas类及其应用,Paint类及其应用,Color类及其应用,主要知识,Color类及其应用,Color类介绍 Color类主要定义了 一些常用的方法来转换整形的Color值 常用的常量如下:,其它色彩的定义 可以用十六进制的方法进行设置色彩,形式如:AARRGGBB,Color类及其应用,如何引用这些常量 引用时,使用Color.XXX,XXX代指常量名字,如Color.BLACK TextView tv=(TextView)findViewById(R.id.tv1); tv.setTextCol

2、or(Color.BLACK); 也可以自己定义,如android:TextColor=”#ff00ff00” android:background=“color/bgcolor”,构造方法 public Color() 实例化时,我们可以调用 常用方法 (1)public static int argb (int alpha, int red, int green, int blue),返回值是十六进制的值 int alpha, int red, int green, int blue的值均为十进制,取值范围(0-255),Color类及其应用,(2)public static int rg

3、b (int red, int green, int blue),返回值是十六进制的值 int red, int green, int blue的值均为十进制,取值范围(0-255),Color类及其应用,例子,Color类及其应用,(1)新建项目 (2)在value文件夹下定义Color.xml文件,(3)编写Color值,(3)编写Color值,Color类及其应用,(4)在XML文件中引用,Color类及其应用,(5)在类中引用,TextView tv=(TextView)findViewById(R.id.textView1); tv.setTextColor(this.getReso

4、urces().getColor(R.color.puzzle_light);,Color类及其应用,Paint类及其应用,简介 画笔是一个集合,这个集合里包含绘制的色彩、样式等重要信息。 在2D图形绘制时,画笔具有重要的角色,配合色彩及画布进行使用,Paint类及其应用,常用属性 int ANTI_ALIAS_FLAG 反锯齿 int HINTING_OFF 提示关闭 int HINTING_ON 提示开启 例子 Paint paint =new Paint(ANTI_ALIAS_FLAG),Paint类及其应用,常用方法 构造方法 public Paint () public Paint

5、(int flags) 如果用第一种方法实例化画笔后,可以用setFlags(int)来设置flags,Paint类及其应用,其他方法 (1)setARGB(int a, int r, int g, int b) 设置Paint对象颜色 (2)setAlpha(int a) 设置alpha不透明度,范围为0255,Paint类及其应用,其他方法 (3)setColor(int color) 设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义 (4)setTextAlign(Paint.Align align) 设置文本对齐,Paint类及其应用,其他方法 (5)setT

6、extSize(float textSize) 设置字体大小 (6)setTypeface(Typeface typeface) 设置字体,Typeface包含了字体的类型,粗细,还有倾斜、颜色等。,Paint类及其应用,其他方法 (7)setStyle (Paint.Style style) 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE (8)setStrokeCap(Paint.Cap cap) 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式Cap.ROUND,或方形样式Cap.SQUARE,Paint类及其应用,其他方

7、法 (9)setStrokeWidth(float width); 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度 。 (10) setTextAlign (Paint.Align align),设置字体对齐方式,例子,Paint类及其应用,Override public void onDraw(Canvas canvas) Paint paint = new Paint(); paint.setColor(Color.BLUE); paint.setTextSize(100); paint.setStyle(Paint.Style.STROKE); paint.s

8、etStrokeWidth(5); canvas.drawLine(0, 0, 200, 200, paint); canvas.drawText(“apple“, 60, 60, paint); canvas.drawLine(0, 60, 500, 60, paint); super.onDraw(canvas); ,做一做,请同学自己仿照例子,画一个字体,要求:字体颜色为0xef00ff00,字体大小14f,字体内容及位置自定。,Paint类及其应用,Canvas类及其应用,简介 Canvas即画布,2D图形可以在其上绘制。 通过重载View.onDraw()方法,在指定的画布上绘图 常

9、用属性 int ALL_SAVE_FLAG 重置画布时使用,常用方法 常用构造方法 public Canvas () public Canvas (Bitmap bitmap) 以bitmap对象创建一个画布,则将内容都绘制在bitmap上,Canvas类及其应用,常用方法 (1)drawARGB (int a, int r, int g, int b) 设置画布的颜色 a为alpha值(0-255) r(red值0-255) g(green值0-55) b(blue值0-255),Canvas类及其应用,常用方法 (2)drawArc (RectF oval, float startAngl

10、e, float sweepAngle, boolean useCenter, Paint paint) 画弧 Oval弧所在的圆(椭圆) startAngle弧开始的角度 sweepAngle结束角度 useCenter弧是否有中心 paint弧的颜色,Canvas类及其应用,例子,Canvas类及其应用,Paint paint=new Paint(); paint.setColor(Color.WHITE); paint.setAntiAlias(true); canvas.drawARGB(127, 255, 00, 00); RectF rect=new RectF(10,10,150

11、,200); canvas.drawArc(rect, 30, -330, true, paint);,常用方法 (3)drawBitmap (Bitmap bitmap, float left, float top, Paint paint) 在指定点画出bitmap,Canvas类及其应用,常用方法 (4)drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint) 把bitmap截取src区域大小,然后布满dst区域,Canvas类及其应用,例子,RectF rect=new RectF(10,10,150,50); Resour

12、ces res = getResources(); InputStream is = res.openRawResource(R.drawable.pic5); BitmapDrawable bmpDraw = new BitmapDrawable(is); Bitmap bmp = bmpDraw.getBitmap(); int x=bmp.getWidth(); int y=bmp.getHeight(); Rect bp=new Rect(x-80,x-80,x,y); canvas.drawBitmap(bmp, bp, rect, null);,常用方法 (5)drawCircle

13、 (float cx, float cy, float radius, Paint paint) 画园cx,cy为圆心,radius为半径,paint为画笔 (6)drawLine (float startX, float startY, float stopX, float stopY, Paint paint) 画线,从开始点(startX, startY,),到结束点(stopX, stopY),Canvas类及其应用,常用方法 (7)drawRect (float left, float top, float right, float bottom, Paint paint) 画矩形

14、(8)drawRoundRect (RectF rect, float rx, float ry, Paint paint) 圆角形矩形,float rx, float ry,圆角率,Canvas类及其应用,常用方法 (9)drawText (String text, float x, float y, Paint paint) 画布上写出字体 (10)drawTextOnPath (String text, Path path, float hOffset, float vOffset, Paint paint) 路径字,路径提前定义好。hOffset字符间距,vOffset字符与路径间距(

15、可以正可以负),Canvas类及其应用,常用方法 (11)getWidth () 画布宽度 (12)getHeight () 画布高度 (13)rotate (float degrees) 旋转画布,Canvas类及其应用,常用方法 (14)rotate (float degrees, float px, float py) 以(px,py)为中心旋转画布 (15)scale (float sx, float sy) 缩放 (16)scale (float sx, float sy, float px, float py) 以(px,py)为中心,进行x轴,y轴缩放 (17)translate

16、(float dx, float dy) 平移,Canvas类及其应用,例子,protected void onDraw(Canvas canvas) / TODO Auto-generated method stub Paint mPaint=new Paint(); Paint paint=new Paint(); mPaint.setColor(Color.CYAN); paint.setColor(getResources().getColor(R.color.mainline); for(int i=1;i10;i+) if(i%3=0) canvas.drawLine(0, i*height, 9*width, i*height, paint); canvas.drawLine(i*width, 0,i*width , 9*height, paint); else canvas.drawLine(0, i*height, 9*width, i*height, mPaint);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号