做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(安卓)基础】TextView的属性详解
  2. Android(安卓)Permission大全1.0最终版本
  3. Android(安卓)判断网络状态,并且在没有网络的时候,打开网络设置对
  4. Android(安卓)设置软键盘搜索键以及监听搜索键点击事件
  5. Android之TextView属性详解
  6. Android——界面布局
  7. Android之TextView属性列表
  8. 你还在问android横竖屏切换的生命周期?
  9. TextView属性大全+单行显示长文本

随机推荐

  1. Android(安卓)传感器开发 完全解析
  2. 【Android】程序设计 ——记账App项目and
  3. Google Developing for Android(安卓)一
  4. Android(安卓)Drawable及其相关类的使用
  5. Android闹钟 AlarmManager的使用
  6. 【Andorid】短视频拍摄SDK——Vitamio Re
  7. 【Android】Dagger2 + MVVM
  8. 利用Eclipse打包混淆时报:Conversion to D
  9. Android(安卓)自定义DialogFragment 以及
  10. android之ContentProvider详解