本篇主要讲Paint和Canvas的常见用法。
1. Paint的常见设置方法
setAntiAlias:设置画笔的锯齿效果
setColor:设置画笔颜色
setARGB:设置画笔的a,r,g,b值
setAlpha:设置Alpha值
setTextSize:设置字体尺寸
setStyle:设置画笔风格,空心或者实心
setStrokeWidth:设置空心的边框宽度
getColor:得到画笔的颜色
getAlpha:得到画笔的Alpha值
2. Canvas绘制常见图形的方法
(一)绘制直线:
drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
参数含义:
startX 直线起点的横坐标
startY 直线起点的纵坐标
stopX 直线终点的横坐标
stopY 直线终点的纵坐标
paint 画笔的对象
(二) 绘制矩形:
drawRect(float left, float top, float right, float bottom, Paint paint);
参数含义:
left 矩形左边界离界面左边界的距离
top 矩形上边界离界面上边界的距离
right 矩形右边界离界面右边界的距离
bottom 矩形下边界离界面下边界的距离
paint 画笔的对象
(三) 绘制圆形:
drawCircle(float cx, float cy, float radius, Paint paint);
参数含义:
cx 圆心的横坐标
cy 圆心的纵坐标
radius 圆的半径
paint 画笔的对象
3. 使用Canvas绘制字符
drawText(String text, float x, float y, Paint paint);
参数含义:
text 要绘制的字符
x 绘制出来字符左边界的位置
y 字符基准线的位置(baseLine,为了排版漂亮)
4. 使用Canvas绘制图形
drawBitmap(Bitmap bitmap, float left, float top, Paint paint);
参数含义:
bitmap 图形对象
left 左边界离界面左边界的距离
top 上边界离界面上边界的距离
paint 画笔的对象
5. 代码演示
新建一个工程,名为shudu02,。新建一个MyView类,添加代码如下:
package com.cfy.shudu02;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
//新建一个画笔对象
Paint paint = new Paint();
//paint.setColor(Color.BLUE);
//设置画笔的颜色
paint.setARGB(150, 0, 100, 200);
//设置画笔画出来的图形是空心的
paint.setStyle(Paint.Style.STROKE);
//设置边框的宽度
paint.setStrokeWidth(10);
//设置字体大小
paint.setTextSize(100);
//绘制apple字符
canvas.drawText("apple", 50, 70, paint);
//绘制直接
canvas.drawLine(0, 70, 500, 70, paint);
//绘制图形
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 100, 300, paint);
//绘制矩形
canvas.drawRect(100, 200, 300, 50, paint);
//绘制圆形
canvas.drawCircle(100, 200, 50, paint);
super.onDraw(canvas);
}
}
新建或者打开MainActivity,添加如下代码:
package com.cfy.shudu02;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
MyView myView = new MyView(this);
setContentView(myView);
}
}
运行程序,效果如下图: