关于Android Path

news/2024/7/8 4:56:23 标签: 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);//设置风格
		
		
		
		
	}

}


http://www.niftyadmin.cn/n/1843805.html

相关文章

codeforces 791A Bear and Big Brother

题目链接:http://codeforces.com/contest/791/problem/A 题意:给两个人的体重a和b,a每年变为3倍,b每年变为2倍,问你多少年a超过b 分析:水的不能再水的题,但是我还要写,因为是要告诉自…

前端面试之Html篇

1 . doctype(文档类型) 的作用是什么? ☆ 对文档进行有效性验证: 它告诉用户代理和校验器这个文档是按照什么DTD 写的。这个动作是被动的, 每次页面加载时,浏览器并不会下载DTD 并检查合法性,只有当手动校验页面时才启用。决定浏览…

ESP定律脱壳的OD脚本

初学脱壳,看了一下OllyScript的语法,写了一个简单的ESP定律脱壳脚本。 “ESP定律”的解释这里不解释,自己搜索相关资料。 // // ESP 定律脱壳脚本 by visionfans 2011.04.15//// clear hardware breakpointsbphwcall// record original ESP…

java调用tensorflow

1.tensorflow官方java调用pb图像分类 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java 参考 http://blog.csdn.net/jay100500/article/details/72802910 1.生成pb http://blog.csdn.net/u014432647/article/details/75276718

一些学习资料地址

安全类《白帽子讲web安全》 --- 适合入门《黑客攻防技术宝典web实战篇》《Web前端黑客技术揭秘》《SQL注入攻击与防御》《Metasploit渗透测试魔鬼训练营》ios安全相关的书籍:《黑客攻防技术宝典iOS实战篇》 (国外翻译来的,相对比较晦涩&#…

Android 关于PathEffect的使用方法CornerPathEffect

PathEffect在Java中是一个父类,他并没有什么用,关键是他的子类,挺有用的,就是感觉drawPath的时候的效果 他有以下子类 CornerPathEffect DashPathEffect DiscretePathEffect PathDashPathEffect ComposePathEffect SumPathEffe…

idea 使用

使用 http://blog.csdn.net/qq_31655965/article/details/53424531 2.知乎idea好在哪 https://www.zhihu.com/question/23648034

Topaz的增强效果果真很棒啊

Topaz Labs开发的图像增强、特殊化处理软件。 效果: 抽时间研究一下它用的方法。