安卓开发32:Paint 画笔

关于Paint 画笔

画笔一般在绘制View的时候会用到。绘制界面首先需要调整画笔,然后绘制到画布上面,才能在界面浏览。之前我们做过一个自定义View,自定义View中就使用了画笔。


Paint常用方法

图像先关
setARGB(int a,int r,int g,int b);  设置绘制的颜色,a代表透明度,r,g,b代表颜色值。 
setAlpha(int a);  设置绘制图形的透明度。
setColor(int color); 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。
setAntiAlias(boolean aa); 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。
setDither(boolean dither);  设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰 
setFilterBitmap(boolean filter);  如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示速度,本设置项依赖于dither和xfermode的设置
setMaskFilter(MaskFilter maskfilter); 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等
setColorFilter(ColorFilter colorfilter); 设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果 
setPathEffect(PathEffect effect); 设置绘制路径的效果,如点画线等
setShader(Shader shader); 设置图像效果,使用Shader可以绘制出各种渐变效果 
setShadowLayer(float radius ,float dx,float dy,int color); 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色
setStyle(Paint.Style style); 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE
setStrokeCap(Paint.Cap cap); 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样Cap.ROUND,或方形样式Cap.SQUARE
setSrokeJoin(Paint.Join join);  设置绘制时各图形的结合方式,如平滑效果等
setStrokeWidth(float width); 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度
setXfermode(Xfermode xfermode); 
设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果 

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

简单例子

package com.example.test.com;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

public class MyView extends View {

    private Paint mPaint;

    public MyView(Context context) {
        super(context);
    }

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        mPaint = new Paint();
        //设置画笔颜色   
        mPaint.setColor(Color.DKGRAY);
        //设置填充   
        mPaint.setStyle(Style.FILL);
        //设置透明度
        mPaint.setAlpha(150);
        //锯齿
        mPaint.setAntiAlias(true);
        //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标   
        canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);
        mPaint.setColor(Color.BLUE);
        mPaint.setTextSize(14);
        //绘制文字   
        canvas.drawText("Hello WORLD", 10, 110, mPaint);
    }

}


你可能感兴趣的:(安卓开发32:Paint 画笔)