Android图像处理之Paint

本文详细介绍了Android中Paint类的使用,包括Enum属性如Align、Cap和Style,以及抗锯齿、防抖动等画笔标签。还讨论了Paint的各种函数,如设置颜色、透明度、字体样式和测量文本宽度等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

enum Paint.Align:设置文字相对于点o(x,y)的位置,有三个选择CENTER、LEFT、RIGHT,分别表示o在文字的水平中间、o在文字的水平左边、o在文字的水平右边

enum Paint.Cap:设置画线的结尾处的形状,有三个选择BUTT、SQUARE、ROUND,BUTT:不在结尾处添加任何一笔,SQUARE:在结尾处加一个方形,ROUND:在结尾处追加一个半圆,下面的代码和图对这几个值的含义做了说明

        paint.setColor(Color.RED);
        paint.setStrokeWidth(50);
        paint.setStrokeCap(Paint.Cap.SQUARE);
        canvas.drawLine(100, 100, 700, 100, paint);
        paint.setStrokeCap(Paint.Cap.ROUND);
        canvas.drawLine(100, 160, 700, 160, paint);
        paint.setStrokeCap(Paint.Cap.BUTT);
        canvas.drawLine(100,220,700,220,paint);


enum Paint.join:设置结合处的形状,有三个选择:BEVEL、MITER、ROUND,分别表示直线、直角、圆角,下面的代码和图形对这几个值做了说明
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.BEVEL);
        canvas.drawRect(100, 100, 500, 300, paint);
        paint.setStrokeJoin(Paint.Join.MITER);
        canvas.drawRect(100,400,500,600,paint);
        paint.setStrokeJoin(Paint.Join.ROUND);
        canvas.drawRect(100,700,500,900,paint);


enum Paint.Style:画笔的样式属性,有三个选项FILL、STROKE、FILL_AND_STROKE,分别表示实心、空心、第三个不知道是干嘛


下面介绍Piant属性的一些标签

ANTI_ALIAS_FLAG:抗锯齿

DITHER_FLAG:防抖动

UNDERLINE_TEXT_FLAG:文字下划线

STRIKE_THRU_TEXT_FLAG:文字中划线

FAKE_BOLD_TEXT_FLAG:文字加粗

还有一些其他的标签感觉不怎么常用,就不在一一介绍了


下面介绍Paint的一些常用函数

Paint():新建一默认的画笔

Piant(int flags):新建一只带有flags标签的画笔

Paint(Paint src):新建一只与src一样的画笔

int getAlpha():返回颜色的透明度属性

int getColor():返回画笔的颜色属性

int getFlags():返回画笔的标签

Paint.Cap getStrokeCap():返回画笔的cap属性

Paint.Join getStrokeJoin():返回结合处的样式

float getStrokeMiter():返回画笔的倾斜度

float getStrokeWidth():返回画笔的粗细

Paint.Style getStyle():返回画笔的风格

Paint.Align getTextAlign():返回画笔的align属性

void getTextBounds(char[] text,int start,int count,Rect bounds):将指定的字符串放入矩形中所需要的最小的矩形,将该矩形存入bounds中,并且矩形是以(0,0)为起点的

void getTextBounds(String text,int start,int end,Rect bounds):将执行的字符串放入矩形中所需要的最小的矩形,将该矩形存入bounds中,并且矩形是以(0,0)为起点的

float getTextScaleX():返回文字的水平缩放因子

float getTextSize():返回文字的大小

float getTextSkewX():返回文字的水平倾斜因子

Typeface getTypeface():返回字体样式

boolean isAntiAlias():画笔是否抗锯齿

boolean isDither():画笔是否防抖动 

boolean isFakeBoldText():文字是否加粗

boolen isStrikeThruText():文字师傅有中划线

boolean isSubPixText():是否采用了亚像素

booean isUnderLineText:文字是否设置了有下划线

float measureText(String text):测量字符串的宽度

float measureText(String text,int start,int end):测量指定长度的字符串的宽度

float measureText(CharSequence text,int start,int end):同上

void reset():初始化画笔

void set(Paint src):将画笔src赋给当前画笔

void setARGB(int a,int r,int g,int b):设置颜色

void setAlpha(int a):设置透明度

void setAntiAlias(boolean aa):设置是否抗锯齿

void setColor(int color) :设置颜色

void setDither(boolean aa):设置是否防抖动

void setFlags(int flags):设置画笔的标签

void setStrokeCap(Paint.Cap cap):设置画笔的cap属性

void setStrokeJoin(Pint.join join):设置结合处的样式

void setStrokeMiter(float d):设置画笔的倾斜度

void setStrokeWidth(float w):设置画笔的粗细

void setStyle(Paint.Style style):设置画笔的风格

void setSubPixText(boolean aa):设置画笔是否采用亚像素

void setTextScaleX(float f):设置文字的水平缩放因子

void setTextSize(float f):设置文字的大小

void setTextSkewX(float f):设置文字的水平缩因子

void setTypeface(Typeface typeface):设置文字的字体

void setUnderlineText(boolean aa):设置文字是否带有下划线

void setStrikeThruText(boolean aa):设置文字是否带有中划线

void setTextAlign(Paint.Align a):设置文字的align属性

void setXfermode(Xfermode xfermode):设置fermode属性,指明当有两层以上的图形时应该如何显示,具体请参考博客PorterDuff.Mode

void setShader(Shader shader):设置渲染器,关于Shader请参考博客详解Paint的setShader(Shader shader)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值