Android 开发Rect

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

Java代码
@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);   
}  
@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,还是我们有理解到坐标点

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/junpeng88/archive/2010/04/29/5540955.aspx


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值