做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 关于EditText文字的显示问题 和属性
  2. Android Studio设置 标题栏隐藏, 状态栏隐藏, 改变状态栏文字颜
  3. Android:使用SpannableString实现图片替换相应的文字
  4. Android TextView追加文字
  5. Android的View体系(三):View坐标以及方法说明
  6. [Android] Json格式解析和文字图片传输
  7. Android地图添加标记和文字【代码片段】
  8. Android中PopupWindow自定义坐标实现

随机推荐

  1. Android(安卓)使用OKHttp3请求接口401,返
  2. Android(安卓)Bitmap图像效果处理
  3. Unable to start activity异常的解决方案
  4. Android(安卓)Style与Theme的应用
  5. Exception in thread "main" java.lang.R
  6. android studio Git使用
  7. Andorid App Widget Framework分析之一:A
  8. 【Android】一道Android(安卓)OpenGL笔试
  9. Android(安卓)中的内容观察者ContentObse
  10. android 4.0.1源码编译,学习错误解决