Android图形图像处理
市面上大多数的Android程序都会用到图形图像处理技术,例如绘制图形,为图片添加特效等。在绘制图像时最常用的就是Bitmap类、BitmapFactory类、Paint类、Canvas类和Matrix类。其中,Bitmap类代表位图,BitmapFactory类顾名思义就是位图工厂,它是一个工具类,Paint类代表画笔,Canvas类代表画布,为图片添加特效使用的是Matrix类。本文将针对图形处理的API进行讲解。
Bitmap类
Bitmao类是Android系统中非常重要的图像处理类,它提供了一系列的方法,可对图像进行旋转、缩放等操作,并可以指定格式保存图像文件。Bitmap类提供的常用方法如下所示:
方法 | 描述 |
---|---|
drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint) | 绘制弧形 |
drawBitmap (Bitmap bitmap, float left, float top, Paint paint) | 绘制位图 |
drawCircle (float cx, float cy, float radius, Paint paint) | 绘制圆形 |
drawLine (float startX, float startY, float stopX, float stopY, Paint paint) | 绘制一条线 |
drawPoint (float x, float y, Paint paint) | 绘制一个点 |
drawRect (float left, float top, float right, float bottom, Paint paint) | 绘制矩形 |
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
super.onDraw(canvas);
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.FILL);
//绘制路径
Path path = new Path();
path.addArc(200, 200, 400, 400, -225, 225);
path.arcTo(400, 200, 600, 400, -180, 225, false);
path.lineTo(400, 542);
//路径剪裁
canvas.clipPath(path);
canvas.drawRect(0, 0, 800, 800, paint);
}
Paint类常用方法
Paint类代表画笔,用来描述图形的颜色和风格,如线宽、颜色、透明度和填充效果等信息。使用Paint类时,首先要创建它的实例对象,然后通过该类提供的方法来更改Paint对象的默认设置。Paint类提供的常用方法如下:
方法 | 描述 |
---|---|
setAlpha(int a) | 设置透明度 |
setARGB(int a, int r, int g, int b) | 绘制颜色 |
setColor(int color) | 设置颜色 |
setShader(Shader shader) | 设置渲染效果 |
setShadowLayer(float radius, float dx, float dy, int color) | 设置阴影 |
setStrokeWidth(float width) | 设置画笔粗细 |
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 把整张画布绘制成白色
canvas.drawColor(Color.WHITE);
Paint paint = new Paint();
/**
* 设置画笔的锯齿效果,去锯齿
* 设置画笔颜色,蓝色
* 设置画笔风格,空心
* 设置空心画笔的宽度&