本篇主要讲Paint和Canvas的常见用法。
setAntiAlias:设置画笔的锯齿效果
setColor:设置画笔颜色
setARGB:设置画笔的a,r,g,b值
setAlpha:设置Alpha值
setTextSize:设置字体尺寸
setStyle:设置画笔风格,空心或者实心
setStrokeWidth:设置空心的边框宽度
getColor:得到画笔的颜色
getAlpha:得到画笔的Alpha值
(一)绘制直线:
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 画笔的对象
drawText(String text, float x, float y, Paint paint);
参数含义:
text 要绘制的字符
x 绘制出来字符左边界的位置
y 字符基准线的位置(baseLine,为了排版漂亮)
drawBitmap(Bitmap bitmap, float left, float top, Paint paint);
参数含义:
bitmap 图形对象
left 左边界离界面左边界的距离
top 上边界离界面上边界的距离
paint 画笔的对象
新建一个工程,名为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); } }
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); } }