`
chroya
  • 浏览: 656261 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android画图之Bitmap(二)

阅读更多

 

 

    前面一篇博文Android画图之Bitmap(一) 介绍了简单的把 Bitmap 画到屏幕上,以及缩放 Bitmap 以铺满屏幕。对 Bitmap 的操作还有很多。比如截取 Bitmap 的部分区域,可以使用

mBitmap = Bitmap.createBitmap(bmp, 100, 100, 120, 120);

 

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

 

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

Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);

 

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

 

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

canvas.drawBitmap(mBitmap, null, new Rect(0, 0, 200, 200), null);

 

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

 

 

 

 

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

canvas.drawBitmap(mBitmap, new Rect(100, 100, 300, 300), new Rect(100, 100, 200, 200), null);

 

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

 

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

 

分享到:
评论
4 楼 vanezkw 2012-05-23  
这个文章好。对于优化内存很有用。
3 楼 shuyahui2010 2011-07-12  
刚好要用到,谢谢啊楼主了
2 楼 542891879 2010-11-29  
很不错介绍的很详细,正好我现在也能用到 谢谢LZ
1 楼 zhang247124629 2010-10-27  
支持一下下..

相关推荐

    android 画图 bitmap drawable canvas paint

    android 画图 bitmap drawable canvas paint

    Android画图学习.pdf

    • Android画图学习总结(二)——Bitmap • Android画图学习总结(三)——Drawable • Android画图学习总结(四)——Animation(上) • Android画图学习总结(四)——Animation(中) • Android画图学习...

    Android 画图/签名

    使用Canvas实现绘图 全屏手写等功能 代码简单清晰易读易懂 扩展性 移植性强

    Android画图学习

    • Android画图学习总结(二)——Bitmap • Android画图学习总结(三)——Drawable • Android画图学习总结(四)——Animation(上) • Android画图学习总结(四)——Animation(中) • Android画图学习...

    Android画图学习笔记

    Android画图学习笔记。针对android中的画图中需要的一些类进行介绍,例如Bitmap, Paint, Drawable, Animation等。

    Android 画图工具源码.zip

    一个画图软件,可以画直线、矩形、圆形、三角形、立方体、圆柱体。 直线可以延长、缩短、拖动;矩形、圆形、三角形需要可以拖动、改变大小。 实现方式: 一个主view类(一个自定义view),在主view类中定义了统一...

    Android编程画图之抗锯齿解决方法

    本文实例分析了Android编程画图之抗锯齿解决方法。分享给大家供大家参考,具体如下: 在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿...

    实现在android上画图的项目

    //画图类型 private boolean isClear = false; //onDraw方法中用来判断当前是否是清除图像 public DrawView(Context context, AttributeSet attrs) { super(context, attrs); createCanvas(); //...

    Android入门之画图详解

    要掌握Android的画图,首先就要了解一下,基本用到的如下一些图形接口: 1.Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间; 2.Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话...

    Android画图之抗锯齿paint和Canvas两种方式实例

    在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。 paint.setAntiAlias(true); ...

    Android 自定义view之画图板实现方法

    看效果: 中间一个画图板 上方小控件用来显示实时画出的图形 下方小控件用来做一些画图的控制 2个小控件都能移动 顺带还有一个刮刮卡效果,只需要改一个参数: 自定义view首先要自定义属性: 在values下面创建...

    android手势绘制文字

    1.在一个View对象中绘制。继承View类,在子类的 onDraw()方法中写入自己定义的绘制代码。 2.直接在画布(Canvas)上绘制。 关于画面清除我想到了两种方法...2.Bitmap类中有一个eraseColor函数,利用它把位图绘制为白色

    Android画图并保存图片的具体实现代码

    也可以先使用BitmapFactory创建一个Bitmap对象,作为新的Canvas对象的参数,也就是说这个画布不是空白的,如果你想保存图片的话,最好是Bitmap是一个新的,而不是从某个文件中读入进来的,或者是Drawable对象。...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

    android开发demo集合

    41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

    Google Android SDK开发范例大全的目录

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

    android初学者入门项目

    41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...

Global site tag (gtag.js) - Google Analytics