Android 绘画基础:Canvas Paint 类
2016-03-30 22:56
330 查看
/** * Author:YJQ on 2016/3/30 21:44 * Description:Android 绘画基础 Canvas .Paint .path * path:预先在View 上将N个点连成一条路径,然后调用Canvas 的drawPath(),沿着路径绘制图像 */ public class DrawView extends View{ public DrawView(Context context, AttributeSet attrs) { super(context, attrs); } //重写该方法,进行绘画 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //把整张画布绘制成白色 canvas.drawColor(Color.WHITE); Paint paint=new Paint(); //去锯齿 paint.setAntiAlias(true); paint.setColor(Color.BLUE); //paint的填充风格 paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(3); //绘制圆形 canvas.drawCircle(40, 40, 30, paint); //绘制正方形 canvas.drawRect(10,80,70,140,paint); //绘制矩形 canvas.drawRect(10,150,70,190,paint); //绘制圆角矩形 RectF ref=new RectF(10,200,70,230); canvas.drawRoundRect(ref,15,15,paint); //绘制椭圆 RectF ref1=new RectF(10,240,70,270); canvas.drawOval(ref1,paint); //定义一个Path 对象,封闭成一个三角形 Path path1 =new Path(); path1.moveTo(10,340); path1.lineTo(70, 340); path1.lineTo(40, 290); path1.close(); //根据path 进行绘制,绘制三角形 canvas.drawPath(path1,paint); //定义一个path 对象,封闭成一个五角 Path path2=new Path(); path2.moveTo(26, 360); path2.lineTo(54, 360); path2.lineTo(70, 392); path2.lineTo(40, 420); path2.lineTo(10, 392); path2.close(); canvas.drawPath(path2, paint); ///////////设置填充风格后绘制///////////////// paint.setStyle(Paint.Style.FILL); paint.setColor(Color.RED); canvas.drawCircle(120, 40, 30, paint); canvas.drawRect(90, 80, 150, 140, paint); ///////////位Paint设置渐变器后绘制///////////////// Shader mShader = new LinearGradient(0,0,40,60, new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW}, null, Shader.TileMode.REPEAT); paint.setShader(mShader); //设置阴影 paint.setShadowLayer(45, 10, 10, Color.GRAY); //绘制圆形 canvas.drawCircle(200, 40, 30, paint); //绘制正方形 canvas.drawRect(170, 80, 230, 140, paint); ///////////设置字体大小后绘制///////////////// paint.setTextSize(24); paint.setShader(null); //绘制字符串 canvas.drawText("圆形",240,50,paint); } }
相关文章推荐
- Android Retrofit介绍
- Android 屏幕适配方案
- Android Studio 1.5.1
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android ndk 字符串传参
- Android studio编译NDK
- android记录登录状态【新浪云搬运】
- Android任务和返回栈完全解析,细数那些你所不知道的细节
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- android 数据库sqlite的使用【新浪云搬运】
- [android] 绑定方式开启服务&调用服务的方法
- include导入布局后原有的控件不可见的解决方法
- Android代码实现新建文件夹,并将文件保存到新建的文件夹中
- Android 4.4 Settings 应用分析
- android随机运算器开发小结1
- 【Android性能优化】内存泄露和内存溢出(OOM)的引发原因及优化方案
- androidstudio 常用快捷键
- Android_R文件丢失
- android studio 的AVD Manager点击无响应解决办法【新浪云搬运】
- android studio 修改程序包名