path paint canvas 之间的用法


drawable:是一个可以在canvas上进行绘制的抽象。

drawable提供交互的机制主要的四种:

1:setBounds方法必须在绘制之前被调用。
2: getPadding方法可以从某些Drawables返回关于如何放置其内容的信息
3:setState方法可以告知Drawable在哪个状态下绘制
4:setLevel方法允许提供单个连续控制器来修改Drawable的显示,例如电池电量。
5:Drawable可以通过Drawable.Callback接口回调其client来执行动画。 


path类

//清除path所有的属性
reset()          
从当前轮廓点绘制一条线段到x,y点:
lineTo(float x, float y)
起始轮廓点移至x,y坐标点
moveTo(float x, float y)
回到初始点 形成封闭的曲线
close()
用于绘制圆弧,这个圆弧取自RectF矩形的内接椭圆上的一部分,圆弧长度由后两个参数决定
path.addArc(oval, startAngle, sweepAngle)
1. addArc可以直接加入一段椭圆弧。使用arcTo还需要使用moveTo指定当前点的坐标。
2. arcTo如果当前点坐标和曲线的起始点不是同一个点的话,还会自动添加一条直线补齐路径。
arcTo(RectF oval, float startAngle, float sweepAngle)
以当前路径结束点为开始点,(x1,y1)为控制点,(x2,y2)为结束点画一条二次贝塞尔曲线
quadTo(float x1, float y1, float x2, float y2)
画圆
addCircle(float x, float y, float radius, Direction dir)
画椭圆
addOval(RectF oval, Path.Direction dir)
在已有的Path上通过平移创建新的path:
addPath(Path src, float dx, float dy)

paint类

Paint paint = new Paint();     
paint.setColor(Color.RED);
//设置画笔宽度
paint.setStrokeWidth(3);
//消除锯齿 以及从cancas类中消除锯齿

canvas.setDrawFilter( new PaintFlagsDrawFilter( 0 , Paint. ANTI_ALIAS_FLAG | Paint. FILTER_BITMAP_FLAG ));
paint.setAntiAlias(true);
//设置镂空(方便查看效果)
paint.setStyle(Style.STROKE);
//重置Paint。
reset()
//设置一些标志,比如抗锯齿,下划线等等。
setFlags(int flags)
//设置抗锯齿,如果不设置,加载位图的时候可能会出现锯齿状的边界,如果设置,边界就会变的稍微有点模糊,锯齿就看不到了。
setAntiAlias(boolean aa)
//设置是否抖动,如果不设置感觉就会有一些僵硬的线条,如果设置图像就会看的更柔和一些,
setDither(boolean dither)
//这个是文本缓存,设置线性文本,如果设置为true就不需要缓存,
setLinearText(boolean linearText)
//设置亚像素,是对文本的一种优化设置,可以让文字看起来更加清晰明显,可以参考一下PC端的控制面板-外观和个性化-调整ClearType文本
setSubpixelText(boolean subpixelText)
//设置文本的下划线
setUnderlineText(boolean underlineText)
//设置文本的删除线
setStrikeThruText(boolean strikeThruText)
//设置文本粗体
setFakeBoldText(boolean fakeBoldText)
//对位图进行滤波处理,如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示 
setFilterBitmap(boolean filter)
//下面这几个就不用说了,上面已经演示过
setStyle(Style style),setStrokeCap(Cap cap),setStrokeJoin(Join join),setTextAlign(Align align),
//设置画笔颜色
setColor(int color)
//设置画笔的透明度[0-255],0是完全透明,255是完全不透明
setAlpha(int a)
//设置画笔颜色,argb形式alpha,red,green,blue每个范围都是[0-255],
setARGB(int a, int r, int g, int b)
//画笔样式为空心时,设置空心画笔的宽度
setStrokeWidth(float width)
//当style为Stroke或StrokeAndFill时设置连接处的倾斜度,这个值必须大于0,看一下演示结果
setStrokeMiter(float miter)

左上角的没有设置setStrokeMiter,右上角setStrokeMiter(2.3f),左下角setStrokeMiter(1.7f),右下角setStrokeMiter(0f)

//这个没整明白具体干什么
getFillPath(Path src, Path dst)

//设置着色器,用来给图像着色的,绘制出各种渐变效果,有BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient几种,
setShader(Shader shader)

//设置画笔颜色过滤器,有ColorMatrixColorFilter,LightingColorFilter,PorterDuffColorFilter几种,这个以后再单独分析
setColorFilter(ColorFilter filter)

//设置图形重叠时的显示方式,下面来演示一下
setXfermode(Xfermode xfermode)
//设置绘制路径的效果,有ComposePathEffect,CornerPathEffect,DashPathEffect,DiscretePathEffect,PathDashPathEffect,SumPathEffect几种,以后在单独分析
setPathEffect(PathEffect effect)
//对图像进行一定的处理,实现滤镜的效果,如滤化,立体等,有BlurMaskFilter,EmbossMaskFilter几种



canvas类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值