Canvas用法

做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。
不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,
用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:
@Override
public void onDraw(Canvas canvas) {
// 首先定义一个paint
Paint paint = new Paint();

// 绘制矩形区域-实心矩形
// 设置颜色
paint.setColor(Color.WHITE);
// 设置样式-填充
paint.setStyle(Style.FILL);
// 绘制一个矩形
canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);

// 绘空心矩形
// 设置颜色
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 50, 20), paint);

// 绘文字
// 设置颜色
paint.setColor(Color.GREEN);
// 绘文字
canvas.drawText(str, 30, 30, paint);

// 绘图
// 从资源文件中生成位图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// 绘图
canvas.drawBitmap(bitmap, 10, 10, paint);
}


以上需要注意的有三点:
1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);
2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;
3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。

更多相关文章

  1. 如何设置Android的AVD模拟器可以输入中文
  2. android 关于Location of the Android(安卓)SDK has not been se
  3. Android各种访问权限Permission详解
  4. Android(安卓)网络开发详解
  5. Android(安卓)studio 更新android SDK
  6. 关于Android堆内存的设置
  7. 按钮状态选择(选中,取消)
  8. android 防止背景图片被拉伸 背景图片平铺
  9. Android—TextView的XML属性和方法

随机推荐

  1. Ubuntu failed to run the android sdk m
  2. Android(安卓)使用MotionLayout实现动画
  3. 闹钟AlarmAndMusic 和支持播放音乐效果的
  4. Android中view绘制常用知识
  5. Android中AIDL的实现使用
  6. Android(安卓)PullToRefresh下拉刷新控件
  7. IPC框架分析 Binder,Service,Service manag
  8. MediaPlayer实现带播放条的音乐播放和视
  9. Android(安卓)studio Android(安卓)Monit
  10. Android报表库aChartEngine系列