android 自定义View之 Paint类的介绍

自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件.

自定义控件就是 准备好画笔 ,然后准备一张画布,最后用画笔在画布上画出自己想要的东西。而这个绘制的过程就叫做自定义.

那么首先来看看 Paint这个类的基本用法:

  setAntiAlias: 设置画笔的锯齿效果。 
   setColor: 设置画笔颜色 
   setARGB:  设置画笔的a,r,p,g值。 
   setAlpha:  设置Alpha值 
   setTextSize: 设置字体尺寸。 
   setStyle:  设置画笔风格,空心或者实心。 
   setStrokeWidth: 设置空心的边框宽度。 
   getColor:  得到画笔的颜色 
   getAlpha:  得到画笔的Alpha值。 

Paint的常用且通用的方法代码示例:

// 提取颜色
		Color.red(0xcccccc);
		Color.green(0xcccccc);

		// 设置paint的颜色和Alpha值(a,r,g,b)
		paint.setAlpha(220);
		// 设置paint的颜色
		paint.setAlpha(Color.rgb(225, 100, 100));
		/* setARGB(int a,int r,int g,int b); 设置paint的透明度和颜色 
		 * 设置绘制的颜色,a代表透明度,a: 0-255 透明度递减 ,(256,257)完全透明, 
		 * r,g,b代表颜色值。 
		 */
		paint.setARGB(250,250,0,0); 
		//设置paint的风格 fill : 实心  ,stroke : 空心
		paint.setStyle(Paint.Style.STROKE);
		// 设置“空心”的外框的宽度
		paint.setStrokeWidth(5);

 Paint类介绍  
    Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,  
    样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,  
     大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。


 1.图形绘制  

//设置绘制的颜色,a代表透明度,r,g,b代表颜色值。  
		paint.setARGB(int a,int r,int g,int b);  


		//设置绘制图形的透明度。  
		setAlpha(int a);  


//		设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。  
		paint.setColor(int color);  



		//设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。  
		 paint.setAntiAlias(boolean aa);  



		 //设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰  
		paint.setDither(boolean dither);  

		/*如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示  
		* 速度,本设置项依赖于dither和xfermode的设置  */
		paint.setFilterBitmap(boolean filter);  


		//设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等       *   
		 paint.setMaskFilter(MaskFilter maskfilter);  

		  //设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果  
		 paint.setColorFilter(ColorFilter colorfilter);  

		 //设置绘制路径的效果,如点画线等  
		  paint.setPathEffect(PathEffect effect);  

		  //设置图像效果,使用Shader可以绘制出各种渐变效果  
		 paint.setShader(Shader shader);  


		 //在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色  
		  paint.setShadowLayer(float radius ,float dx,float dy,int color);  


		  //设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE  
		paint.setStyle(Paint.Style style);  


		/*当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式  
		* Cap.ROUND,或方形样式Cap.SQUARE 
		*/ 
		  paint.setStrokeCap(Paint.Cap cap);  


		  //设置绘制时各图形的结合方式,如平滑效果等  
		paint.setSrokeJoin(Paint.Join join);  


		//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度  
		  paint.setStrokeWidth(float width);  


//		  设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果  
		paint.setXfermode(Xfermode xfermode);  

 2.文本绘制  

//模拟实现粗体文字,设置在小字体上效果会非常差  
		paint.setFakeBoldText(boolean fakeBoldText);  


	        //设置该项为true,将有助于文本在LCD屏幕上的显示效果  
	     paint.setSubpixelText(boolean subpixelText);  


	     //设置绘制文字的对齐方向  
	     paint.setTextAlign(Paint.Align align);  



	     //设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果  
	   paint.setTextScaleX(float scaleX);  



	     //设置绘制文字的字号大小  
	     paint.setTextSize(float textSize);  



	     //设置斜体文字,skewX为倾斜弧度  
	     paint.setTextSkewX(float skewX);  


	     //设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等  
	     paint.setTypeface(Typeface typeface);  
 


	     //设置带有下划线的文字效果  
	     paint.setUnderlineText(boolean underlineText);  


	     //设置带有删除线的效果  

	     paint.setStrikeThruText(boolean strikeThruText);  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值