做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);
//=====================让一个图片透明=========
Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);buffer.eraseColor(Color.TRANSPARENT);

// 绘图
canvas.drawBitmap(bitmap, 10, 10, paint);
}

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

更多相关文章

  1. Android—高级组件对应属性大全及使用详例
  2. android.widget.TextView 属性详解
  3. android 绘图
  4. android学习(1)——TextView属性
  5. Android(安卓)APN设置 获取APN列表
  6. Android(安卓)动画框架原理
  7. android 关于Location of the Android(安卓)SDK has not been se
  8. Android(安卓)自定义漂亮的Seekbar样式
  9. 采用跑马灯形式显示文本

随机推荐

  1. 78 Android(安卓)BroadcastReceiver 有序
  2. Android(安卓)Stream to String
  3. 【Android】Menu不同菜单的使用介绍
  4. Google Play Services to Beat Android(
  5. [Android]Tab
  6. Android推送通知
  7. How to build and debug android source
  8. android中的ImageButton
  9. Android中Broadcast的Intent大全
  10. android Bitmap->BGR字节数组