关于使用BitMap的小结
来源:互联网 发布:网络时钟服务器 编辑:程序博客网 时间:2024/05/16 13:02
创建bitmap:
Bitmap bm = null;bm = Bitmap.createBitmap(w, h, Config.ALPHA_8); //每个像素占一个字节(8位)bm = Bitmap.createBitmap(w, h, Config.ARGB_4444); //两个字节bm = Bitmap.createBitmap(w, h, Config.ARGB_8888); //四个字节bm = BitmapFactory.decodeFile(path); //从文件加载成bitmap,如/sdcard/logo.pngbm = BitmapFactory.decodeResource(getResources(), R.drawable.test); //R.drawable.test指的是/res/drawable-*/test.jpg或png等等bm = ((BitmapDrawable)getResources().getDrawable(R.drawable.show)).getBitmap(); //未测试
截取bitmap:
Bitmap sbm = Bitmap.createBitmap(this.bm, 0, 0, w, h); //表示从(0,0)处开始截取宽为w,高为h的范围
拉伸bitmap:
DisplayMetrics dm = getResources().getDisplayMetrics(); int mScreenWidth = dm.widthPixels; //获取屏幕宽int mScreenHeight = dm.heightPixels; //获取屏幕长度Bitmap lbm = Bitmap.createScaledBitmap(this.bm, mScreenWidth, mScreenHeight, true);
每次 createBitmap ,都会分配新的内存,带来资源的消耗,所以用 Bitmap 的 createBitmap 虽然简单方便,但是不是最优方法。介绍一个比较好点的方法,不用创建新的 Bitmap ,用 Canvas 在画的时候直接缩放或者剪切。
canvas.drawBitmap(this.bm, null, new Rect(0, 0, 200, 200), null);
这里的 Rect 对象表示一个矩形区域,从 (0,0) 到 (200,200) 之间的矩形区域。这段代码将把this.bm缩放并绘制到屏幕上的 (0,0) 到 (200,200) 之间的区域。
canvas.drawBitmap(this.bm, new Rect(100, 100, 300, 300), new Rect(100, 100, 200, 200), null);
这里将this.bm的 (100,100) 到 (300,300) 区域拿出来,自动缩放并画到屏幕的 (100,100) 到 (200,200) 区域。
还可以通过matrix缩放:
Matrix matrix = new Matrix();matrix.postScale(1.0f, 1.0f); //这里宽和高都是1倍,等于没缩放Bitmap newbtm = Bitmap.createBitmap(btm, 0, 0, this.btm.getWidth(), this.btm.getHeight(), matrix, true);
旋转bitmap:
也是通过maxtrix实现的,详情待补。
- 关于Bitmap的使用小结
- 关于使用BitMap的小结
- 关于bitmap的使用
- 关于Bitmap使用的笔记汇总
- 关于Nginx的使用小结
- 关于Toolbar的使用小结
- 关于Bitmap的旋转
- bitmap 小结
- oacle中关于bitmap index的使用问题
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于XtraGrid的使用(GridControl小结)
- sqlite3
- boost any (存储class A,class B)
- Chromium界面分析小结(八)字符串资源管理方法
- php常用函数列表
- Chromium界面分析小结(九)命令执行过程
- 关于使用BitMap的小结
- PHP扩展curl用法详解(转)
- 如何创建ASM磁盘
- 处理xp系统报explorer内存不能为写的错误,小喇叭不见的方法
- Halcon中基于形状模板的匹配
- Chromium界面分析小结(十)界面构造主要类和函数
- iOS: (库) 图片异步下载/缓存-SDWebImage的使用
- SQLServer使用注意规范
- ORACLE实例的启动过程