搬运Canvas/Paint

目录

-------------------------------------------paint常用Api:--------------------------------------------

----------------------------------------------canvas-Api-----------------------------------------------

1.drawCircle画圆

2.drawText画文字

1)void drawText (String text, float x, float y, Paint paint) 

2)void drawText (CharSequence text, int start, int end, float x, float y, Paint paint) 

3)void drawText (String text, int start, int end, float x, float y, Paint paint) 

4)void drawText (char[] text, int index, int count, float x, float y, Paint paint)

5)SpannableString展示各种字体

3.drawArc画圆弧

4.drawARGB

5.drawBitmap

6.drawBitmapMesh

7.drawColor

8.canvas.drawLine();

9.canvas.drawLines();

10.canvas.drawOval();

12.canvas.drawPath();

12.canvas.drawPicture();

13.canvas.drawPoint();

14.canvas.drawPoints();

15.canvas.drawRect();

16.canvas.drawRGB();

17.canvas.drawRoundRect();


--------------------------paint常用Api:--------------------------

  1. setARGB(int a,int r,int g,int b): //绘制的颜色,a透明度,r,g,b颜色值。 
  2. setAlpha(int a): //设置绘制图形的透明度。  
  3. setColor(int color): //设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。
  4. setAntiAlias(boolean aa): //设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。
  5. setDither(boolean dither)://是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑
     和饱满,图像更加清晰  
  6. setFilterBitmap(boolean filter)://如果设为true,图像在动画进行中会滤掉对
     Bitmap图像的优化操作, 加快显示速度,本设置项依赖于dither和xfermode的设置  


  1. setMaskFilter(MaskFilter maskfilter):// 设置MaskFilter,可以用不同的MaskFilter
     实现滤镜的效果,如滤化,立体等  
  2. setColorFilter(ColorFilter colorfilter):// 设置颜色过滤器,可以在绘制颜色时实现
     不用颜色的变换效果  
  3. setPathEffect(PathEffect effect) //设置绘制路径的效果,如点画线等  
  4. setShader(Shader shader):// 设置图像效果,使用Shader可以绘制出各种渐变效果  
  5. setShadowLayer(float radius ,float dx,float dy,int color)://在图形下面设置阴影层,
     产生阴影效果, radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色  


  1. setStyle(Paint.Style style): //设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE  
  2. setStrokeCap(Paint.Cap cap): //当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样        
     式, 如圆形样Cap.ROUND,或方形样式Cap.SQUARE
  3. setSrokeJoin(Paint.Join join): //设置绘制时各图形的结合方式,如平滑效果等  
  4. setStrokeWidth(float width): //当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的
     粗细度  
  5. setXfermode(Xfermode xfermode): //设置图形重叠时的处理方式,如合并,取交集或并集,
     经常用来制作橡皮的擦除效果  


  1. setFakeBoldText(boolean fakeBoldText):// 模拟实现粗体文字,设置在小字体上效果会非常差  
  2. setSubpixelText(boolean subpixelText):// 设置该项为true,将有助于文本在LCD屏幕上的
     显示效果  
  3. setTextAlign(Paint.Align align):// 设置绘制文字的对齐方向  
  4. setTextScaleX(float scaleX):// 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果  
  5. setTextSize(float textSize):// 设置绘制文字的字号大小  
  6. setTextSkewX(float skewX):// 设置斜体文字,skewX为倾斜弧度  
  7. setTypeface(Typeface typeface): //设置Typeface对象,即字体风格,包括粗体,斜体以及
     衬线体,非衬线体等  
  8. setUnderlineText(boolean underlineText): //设置带有下划线的文字效果  


  1. setStrikeThruText(boolean strikeThruText):// 设置带有删除线的效果  
  2. setStrokeJoin(Paint.Join join):// 设置结合处的样子,Miter:结合处为锐角, 
     Round:结合处为圆弧:BEVEL:结合处为直线  
  3. setStrokeMiter(float miter)://设置画笔倾斜度  
  4. setStrokeCap (Paint.Cap cap)://设置转弯处的风格 其他常用方法:  
  5. float ascent( )://测量baseline之上至字符最高处的距离   
  6. float descent()://baseline之下至字符最低处的距离  
  7. int breakText(char[] text, int index, int count, float maxWidth, float[] 
     measuredWidth):// 检测一行显示多少文字  
  8. clearShadowLayer( )://清除阴影层  

1.setMaskFilter绘制图形处理,如模糊或者浮雕处理:https://www.cnblogs.com/tianzhijiexian/p/4297734.html

2.setXfermode图形重叠模式设置:http://www.cnblogs.com/DonkeyTomy/articles/3215137.html

--------------------------canvas-Api--------------------------

1.drawCircle画圆

https://blog.csdn.net/lovexieyuan520/article/details/50681778

2.drawText画文字

1)void drawText (String text, float x, float y, Paint paint) 

x和y并非绘制的文字的左上角,y为基线位置:

https://blog.csdn.net/qqqq245425070/article/details/79027979

讲解了drawTextRun(辅助一些文字结构比较特殊的语言的绘制)和drawTextOnPath(沿着路径画字)

2)void drawText (CharSequence text, int start, int end, float x, float y, Paint paint) 

展示CharSequence 类型字体,截取一部分字体绘制(开始:start   结束:end)

3)void drawText (String text, int start, int end, float x, float y, Paint paint) 

截取一部分字体绘制(开始:start   结束:end)

4)void drawText (char[] text, int index, int count, float x, float y, Paint paint)

截取一部分字体绘制(开始:index   文字截取个数:count)

5)SpannableString展示各种字体

https://blog.csdn.net/dahaohan/article/details/50921172

3.drawArc画圆弧

https://blog.csdn.net/qq_18432309/article/details/51811546

4.drawARGB

画布着色:drawARGB(int a, int r, int g, int b)

5.drawBitmap

https://blog.csdn.net/u013135085/article/details/81216663#%E4%B8%80%E3%80%81%E7%BB%98%E5%88%B6%E4%BD%8D%E5%9B%BE%EF%BC%88drawBitmap%EF%BC%89

Matrix处理图片绘制:https://blog.csdn.net/u013135085/article/details/82186118

6.drawBitmapMesh

https://www.jianshu.com/p/51d8dd99d27d

7.drawColor

1)drawColor(@ColorInt int color)

画布着色

2)drawColor(@ColorInt int color, @NonNull PorterDuff.Mode mode)

画布按照Mode着色:

PorterDuff.Mode:https://blog.csdn.net/qq_30889373/article/details/78792293

8.canvas.drawLine();

drawLine(float startX, float startY, float stopX, float stopY, Paintpaint) //画线

参数一:起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1224/738.html

9.canvas.drawLines();

多组线:https://blog.csdn.net/pimkle/article/details/16946423

10.canvas.drawOval();

矩形内绘制椭圆:

canvas.drawOval(new RectF(100, 400, 700, 700), paint);

12.canvas.drawPath();

drawPath(Path path, Paint paint)

Path :https://blog.csdn.net/xiangzhihong8/article/details/78278931

12.canvas.drawPicture();

https://blog.csdn.net/u013135085/article/details/81216663#%E4%B8%80%E3%80%81%E7%BB%98%E5%88%B6%E4%BD%8D%E5%9B%BE%EF%BC%88drawBitmap%EF%BC%89

13.canvas.drawPoint();

画点:参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。

14.canvas.drawPoints();

画点集:

/*
* @param
*  pts 两个值(x轴坐标,y轴坐标)为一组的数组。且为2的倍数,否则报错。例如:
*  {100,100,200,200}:表示(100,100)和(200,200)两个点。
*  paint 画笔
* 绘制一组点。
*/
public void drawPoints(@Size(multiple = 2) @NonNull float[] pts, @NonNull Paint paint)
/*
* @param
*  pts 同上
*  offset 跳过pts中offset个值
*  count 以pts中第offset+1个值到第offset+1+count值计算坐标画点,
*        不足以0为最后一个点的y坐标
*  paint 画笔
* 绘制一组点。
*/
public void drawPoints(@Size(multiple = 2) float[] pts, int offset, int count,

15.canvas.drawRect();

  • 矩形工具类 RectF 与 Rect
    这两个都是矩形辅助类,区别不大,用哪个都可以,根据四个点构建一个矩形结构,在画图时,利用这个矩形结构可以画出对应的矩形或者与其他图形 Region 相交、相加等
  • RectF
    构造函数有四个,但最常用的还是第二个,根据四个点构造出一个矩形
    RectF()
    RectF(float left, float top, float right, float bottom)
    RectF(RectF r)
    RectF(Rect r)
  • Rect
    构造函数有三个,最常用的也是根据的四个点来构造矩形
    Rect()
    Rect(int left, int top, int right, int bottom)
    Rect(Rect r)
canvas.drawRect(100, 100, 300, 300, paint);
canvas.drawRect(new Rect(400, 100, 600, 300), paint);
canvas.drawRect(new RectF(100, 400, 300, 600), paint);

16.canvas.drawRGB();

填充画布颜色:drawRGB(int r, int g, int b)

17.canvas.drawRoundRect();

画圆角矩形,不用shape实现:https://blog.csdn.net/kuaiguixs/article/details/78753149

猜你喜欢

转载自blog.csdn.net/qq_37321098/article/details/84959425
今日推荐