打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android画图之Bitmap(二)
userphoto

2010.11.08

关注
 前面一篇博文Android画图之Bitmap(一) 介绍了简单的把 Bitmap 画到屏幕上,以及缩放 Bitmap 以铺满屏幕。对 Bitmap 的操作还有很多。比如截取 Bitmap 的部分区域,可以使用
Java代码
  1. mBitmap = Bitmap.createBitmap(bmp, 100100120120);  

 

    这句代码从 bmp (100,100) 处截取 120*120 像素区域放到新的 Bitmap 中。

 

缩放一个 Bitmap ,前面一篇已经涉及到了,可以用 Bitmap.createScaledBitmap() 方法根据给定的 Bitmap 创建一个新的,缩放后的 Bitmap

Java代码
  1. Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);  

 

    其中 mScreenWidth mScreenHeight 是屏幕的宽度和高度,这里就将 bmp 拉伸到整个屏幕。

 

    每次 createBitmap ,都会分配新的内存,带来资源的消耗,所以用 Bitmap createBitmap 虽然简单方便,但是不是最优方法。介绍一个比较好点的方法,不用创建新的 Bitmap ,用 Canvas 在画的时候直接缩放或者剪切。

Java代码
  1. canvas.drawBitmap(mBitmap, nullnew Rect(00200200), null);  

 

    这里的 Rect 对象表示一个矩形区域,从 (0,0) (200,200) 之间的矩形区域。这段代码将把 mBitmap 缩放并绘制到屏幕上的 (0,0) (200,200) 之间的区域。

 

 

 

 

这个方法还有第二个参数我给的是 null ,其实这个参数也是个 Rect 对象,表示源 Rect 。把图片的某个区域拿出来画到屏幕的指定区域。

Java代码
  1. canvas.drawBitmap(mBitmap, new Rect(100100300300), new Rect(100100200200), null);  

 

    这里将 mBitmap (100,100) (300,300) 区域拿出来,自动缩放并画到屏幕的 (100,100) (200,200) 区域。

 

    对于 Bitmap 的处理,上面介绍的 是最简单的两种,平移和缩放。而要是需要更复杂的处理,比如旋转和倾斜,就得使用 Matrix 了。下面几篇将介绍 Matrix 在画图中的使用。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
继承SurfaceView Runnable android在现有图片上面继续画图(保留上次画的和不保留上次的)
8.3.17 Canvas API详解(Part 2)剪切方法合集
Android变形(Transform)之Matrix用法
Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
Android获取当前手机设备信息工具类
利用OpenCV在Android上DIY相机——第二届 Google 暑期大学生博客分享大...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服