关于Android Path

初学Path 先总结如下,

首先调用Path的MoveTo(x,y)方法,相当于确定路径的起点

然后不断的调用lineTo(x,y)方法,绘制各种图形

感觉lineTo(x,y)方法就是考验我们数学功底的时候啦

最后再调用close()方法,就把最后一个点和第一个点成功的连接起来啦

举例如下:

package com.example.imageview;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;

public class ImageView extends View {
	
	public ImageView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
	}

	public ImageView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public ImageView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	@Override
	protected void onDraw(Canvas canvas)
	{
		super.onDraw(canvas);
		//将整个View的背景绘制成白色
		canvas.drawColor(Color.WHITE);
		Paint paint = new Paint();
		paint.setAntiAlias(true);//去锯齿???
		paint.setColor(Color.RED);
		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);
		//绘制圆角矩阵 ------ 就是先做出来一个矩形区域,然后不再调用drawRect方法,而是调用drawRoundRect方法
		RectF rel = new RectF(10,200,70,230);//这是一个矩形区域
		canvas.drawRoundRect(rel, 15, 15, paint);
		//绘制椭圆
		RectF rell = new RectF(10,240,70,270);
		canvas.drawOval(rell, 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 path2 = new Path();
		path2.moveTo(10, 392);
		path2.lineTo(26, 360);
		path2.lineTo(54, 360);
		path2.lineTo(70, 392);
		path2.lineTo(40, 420);
		path2.close();
			//根据Path绘图
		canvas.drawPath(path2, paint);
		
		paint.setStyle(Paint.Style.FILL);//设置风格
		
		
		
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值