Android使用Canvas画图
1.参考:http://blog.csdn.net/rhljiayou/article/details/7212620/
2.常用方法:
1.Canvas类
drawArc 绘制弧
drawBitmap 绘制位图
drawCircle 绘制圆形
drawLine 绘制线
drawOval 绘制椭圆
drawPath 绘制路径
drawPoint 绘制一个点
drawPoints 绘制多个点
drawRect 绘制矩形
drawRoundRect 绘制圆角矩形
drawText 绘制字符串
drawTextOnPath 沿着路径绘制字符串
2.Paint类:
setARGB/setColor 设置颜色
setAlpha 设置透明度
setAntiAlias 设置是否抗锯齿
setShader 设置画笔的填充效果
setShadowLayer 设置阴影
setStyle 设置画笔风格
setStrokeWidth 设置空心边框的宽度
setTextSize 设置绘制文本时文字的大小
setStrokeCap(Paint.Cap.ROUND) 设置为圆角
3.代码如下:
- public class DrawView extends View {
- public DrawView(Context context) {
- super(context);
- }
- public DrawView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- }
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- /*
- * 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawPath 绘制任意多边形
- * drawLine 绘制直线 drawPoin 绘制点
- */
- //设置画笔
- Paint paint=new Paint();
- paint.setAntiAlias(true);
- paint.setColor(Color.RED);
- paint.setStyle(Paint.Style.STROKE);
- //画文本
- canvas.drawText("画圆",20,30,paint);
- //画圆
- canvas.drawCircle(100,30,30,paint);
- //画线
- paint.setColor(Color.BLACK);
- canvas.drawText("画线及圆弧",10,80,paint);
- canvas.drawLine(10,90,310,90,paint);//直线
- canvas.drawLine(330,90,430,150,paint);//斜线
- //画圆弧及扇形
- RectF oval1=new RectF(10,160,110,260);
- paint.setColor(Color.GREEN);
- canvas.drawArc(oval1,180,180,false,paint);
- //第一个参数:范围 第二个参数:开始角度 第三个参数:圆弧度数
- //第四个参数:false---圆弧 true---扇形
- //第五个参数:画笔
- oval1.set( 120,160,220,260);
- canvas.drawArc(oval1,20,60,true,paint);
- oval1.set(230,160,330,260);
- canvas.drawArc(oval1,200,240,true,paint);
- //画矩形
- paint.setColor(Color.BLUE);
- canvas.drawRect(10,280,210,380,paint);
- //绘制圆角矩形
- RectF re1=new RectF(250,280,450,380);
- canvas.drawRoundRect(re1,15,15,paint);
- //画椭圆
- RectF re2=new RectF(10,400,210,500);
- canvas.drawOval(re2, paint);
- //画三角形
- paint.setColor(Color.DKGRAY);
- Path path=new Path();
- path.moveTo(70,520);
- path.lineTo(10,580);
- path.lineTo(130,580);
- path.close();
- canvas.drawPath(path,paint);
- //画点
- paint.setStyle(Paint.Style.FILL);
- canvas.drawPoint(10,600,paint);//一个点
- canvas.drawPoints(new float[]{20,600,30,600,40,600},paint);//多个点
- //画贝塞尔曲线
- paint.setStyle(Paint.Style.STROKE);
- paint.setColor(Color.RED);
- Path path1=new Path();
- path1.moveTo(100,620);
- path1.quadTo(150,550,170,700);
- canvas.drawPath(path1,paint);
- //画图片
- Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.pic6);
- // canvas.drawBitmap(bitmap,100,610,paint);//不限定图片大小 只指定左上角坐标
- RectF rectF=new RectF(100,710,400,1010);
- canvas.drawBitmap(bitmap,null,rectF,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.setStyle(Paint.Style.FILL);
- //设置阴影
- paint.setShadowLayer(45,10,10,Color.BLACK);
- canvas.drawRect(440,710,640,910,paint);
- }
- }
4.效果图:
Android使用Canvas画图的更多相关文章
- android canvas 画图笔记
android canvas 画图笔记 1.PathEffect类 画虚线 Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setStyle(Paint.S ...
- Android开发之画图的实现
Android开发之画图的实现 四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .
1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...
- Android之canvas详解
首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...
- Android中利用画图类和线程画出闪烁的心形
本文讲解主要涉及的知识点: 1.线程控制 2.画图类 3.心形函数 大家先看图片: <ig ...
- Android之自定义画图文字动画
结构: BaseView: package com.caiduping.canvas; import android.content.Context; import android.graphics. ...
- Android利用canvas画各种图形 及Paint用法 .
引自:http://blog.csdn.net/carlfan/article/details/8139984 1.首先说一下canvas类: Class Overview The Canvas cl ...
- android学习5——画图问题
重写View中的onDraw函数可以实现画图.代码如下: @Override public void onDraw(Canvas canvas) { Paint paint = new Paint() ...
- html5 canvas 画图移动端出现锯齿毛边的解决方法
使用HTML5的canvas元素画出来的.在移动端手机上测试都发现画图有一点锯齿问题 出现这个问题的原因应该是手机的宽是720像素的, 而这个canvas是按照小于720像素画出来的, 所以在720像 ...
随机推荐
- MySQL-5.7中InnoDB表数据文件存储位置
学习地址:https://www.cnblogs.com/tongxiaoda/p/7874535.html
- maven help:system
lifecycle:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html bindings:ht ...
- spring的@Transactional注解详细用法(转)
概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性.Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型, ...
- 学习FPGA需要做哪些
有些人比较差,做了一些介绍,有误导成分.有些人水平太高,介绍的很好,但是很多人依旧听不懂,得到的肯定很少.学习FPGA,在不同层次的人明显有不同的答案. 熟悉硬件描述语言语法,不需要什么都会,但是要记 ...
- zabbix snmp 协议监控 dell iRDAC
转摘:http://blog.csdn.net/wanglei_storage/article/details/52789921 http://blog.csdn.net/wanglei_storag ...
- 基本教程篇--第一节:InitialSampleDemo.cs介绍
第一节:InitialSampleDemo.cs介绍 为了讲解方便,我先附上源代码和效果图. 代码如下: using System; using System.Drawing; ...
- Strom简单介绍
1.离线计算是什么? 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据. ...
- ResponseUtil
package util; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.http.Htt ...
- kibana-4.6.3-linux-x86_64.tar.gz的下载(图文详解)
对于Kibana ,我们知道,是Elasticsearch/Logstash/Kibana的必不可少成员. 第一步:进入Elasticsearch的官网 https://www.elastic.co/ ...
- vmware 仅主机模式 ip配置
首先关闭防火墙 主机(宿主机器 win7) 虚拟机(xp) 3..重要提示: 如果ping不通首先考虑防火墙的问题!!! vmware配置: nat模式下玩耍: 1. 配置nat的虚拟网卡: 2. ...