我可以: 邀请好友来看>>
ZOL论坛 > 兴趣圈子论坛 > 神通哥有问必答论坛 > android canvas基本操作
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

android canvas基本操作

13浏览 / 0回复

7k4qb6a0fd

7k4qb6a0fd

0
精华
71
帖子

等  级:Lv.3
经  验:1190
  • Z金豆: 0

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:
  • 注  册:2011-12-30
  • 登  录:2018-04-28
发表于 2017-02-20 15:05:10
电梯直达 确定
楼主

canvas顾名思义画布的意思,andorid提供一个canvas接口,通过这个接口可以在手机上完成简单的和复杂的图形绘制。下面我们从简单的图形入手,比如:圆,矩形,正方形,弧线,椭圆的绘制函数方法

方法/步骤

    步骤1、首先新建一个android项目名字为CanvasShow,其余参数可以自己配置,点击完成,形成项目信息

    步骤2、配置main.xml,在这里main.xml 基本不用修改,只需增加

    步骤3、

    步骤4、 android:orientation="vertical"

    步骤5、 android:layout_width="fill_parent"

    步骤6、 android:layout_height="fill_parent"

    步骤7、 android:id="@+id/root"

    步骤8、 >

    步骤9、

    步骤10、CanvasShowInfo中实现方法:

    步骤11、 @Override

    步骤12、 public void onCreate(Bundle savedInstanceState) {

    步骤13、 super.onCreate(savedInstanceState);

    步骤14、 setContentView(R.layout.main);

    步骤15、 init();

    步骤16、 }

    步骤17、 private void init() { 燑/p>

    步骤18、 LinearLayout layout=(LinearLayout) findViewById(R.id.root); 燑/p>

    步骤19、 final CanvasDraw view=new CanvasDraw(this); 燑/p>

    步骤20、 view.setMinimumHeight(500); 燑/p>

    步骤21、 view.setMinimumWidth(300); 燑/p>

    步骤22、 //通知view组件重绘 犝飧龊苤匾?狘/p>

    步骤23、 view.invalidate(); 燑/p>

    步骤24、 layout.addView(view); 燑/p>

    步骤25、 牋

    步骤26、 } 燑/p>

    步骤27、那么CanvasDraw.java中实现了什么呢?

    步骤28、声明CanvasDraw.java 继承View,重写其中的onDraw方法。

    步骤29、比如画圆:

    步骤30、 // 创建画笔 燑/p>

    步骤31、 Paint p = new Paint();燑/p>

    步骤32、 p.setColor(Color.RED);// 设置红色 燑/p>

    步骤33、 canvas.drawText("画圆:", 10, 20, p);// 画文本 燑/p>

    步骤34、 canvas.drawCircle(40, 40, 15, p);// 分别是 圆心的x,y坐标,15为半径燑/p>

    步骤35、 p.setAntiAlias(true);// 设置画笔的锯齿效果。 true是去除,大家一看效果就明白了 燑/p>

    步骤36、 canvas.drawCircle(100, 120, 50, p);// 分别是 圆心的x,y坐标,50为半径

    步骤37、从图中可以看见,去除锯齿的图形更加圆滑。下面是相对应的效果图

    步骤38、 canvas.drawText("画矩形:", 10, 90, p); 燑/p>

    步骤39、 p.setColor(Color.BLUE);// 设置灰色 燑/p>

    步骤40、 p.setStyle(Paint.Style.FILL);//设置填满 燑/p>

    步骤41、 canvas.drawRect(60, 60, 80, 80, p);// 正方形 燑/p>

    步骤42、 canvas.drawRect(70, 90, 300, 100, p);// 长方形 燑/p>

    步骤43、// drawRect函数前两个参数是一个顶点的坐标,后两个参数是对顶点的坐标,相对应的效果图

    步骤44、canvas.drawText("画扇形:", 120, 120, p); 燑/p>

    步骤45、 // 设置渐变色 这个扇形的颜色是改变的 / 燑/p>

    步骤46、燬hader mShader = new LinearGradient(0, 0, 100, 100, 燑/p>

    步骤47、 new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW, 燑/p>

    步骤48、 Color.LTGRAY }, null, Shader.TileMode.REPEAT); // 一个材质,打造出一个线性梯度沿著一条线。 燑/p>

    步骤49、 p.setShader(mShader); 燑/p>

    步骤50、 p.setColor(Color.BLUE); 燑/p>

    步骤51、 RectF oval2 = new RectF(60, 100, 200, 240);// 设置个新的长方形,扫描测量 燑/p>

    步骤52、 canvas.drawArc(oval2, 200, 130, true, p); 燑/p>

    步骤53、 // 画弧,第一个参数是RectF:该类是第二个参数是角度的开始,第三个参数是多少度,第四个参数是真的时候画扇形,是假的时候画弧线 燑/p>

    步骤54、 牋

    步骤55、其中:

    步骤56、public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)

    步骤57、oval :指定圆弧的外轮廓矩形区域。

    步骤58、startAngle: 圆弧起始角度,单位为度。

    步骤59、sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。

    步骤60、useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。

    步骤61、paint: 绘制圆弧的画板属性,如颜色,是否填充等。

高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表