做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:
@Overridepublic void onDraw(Canvas canvas) {// 首先定义一个paintPaint 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,还是我们有理解到坐标点的意义。

(作者:子轩,邮箱:[email protected])
[本节结束]

更多相关文章

  1. 2011.07.20(2)——— android 计算当前坐标是否在view内
  2. Android(安卓)PopupWindow 的显示位置
  3. Android(安卓)の文字翻转动画的实现
  4. Android之监听文本框输入的文字个数并实时显示还可以输入的个数-
  5. 【android】用camera实现view的伪3D的效果
  6. Android(安卓)TextView中文字通过SpannableString来设置超链接、
  7. 鉴客 Android中如何生成带圆角的Bitmap图片
  8. RadioButton 左侧显示文字,右侧显示按钮时文字不靠边的问题解决
  9. android view 的移动的几种方式

随机推荐

  1. Android(安卓)system大小上限设置
  2. android KEYCODE_BACK监听处理
  3. Android禁用返回键
  4. Android(安卓)浮点型当小数点后为0时自动
  5. android异步加载图片
  6. Android的SensorEventListener例子(摇晃手
  7. 对话框android
  8. Android修改system只读权限:remount
  9. Android之文件存储
  10. android Fragment + FragmentStatePagerA