Bitmap的复制和注意
来源:互联网 发布:pony粉饼知乎 编辑:程序博客网 时间:2024/06/07 22:30
Bitmap是不能通过“ A = B ”来传递的,这样只是把B的引用给了A而已
之前做截图的时候就遇到过这个问题,但是没注意,想把截图获得的bitmap给ImageView显示,然后回收。发现报错后,就用“ = ”的方法新建了个A,同时回收B。发现还是报错,然后才想起来这个知识点。那么通过什么方法能够把Bitmap给复制过去呢?
ps:这里也说一下,不要把Bitmap像我上面那样给ImageView显示,我是为了调试的时候能更直观的看到,实际情况中,分享界面跟主界面是两个activity,这样Bitmap在分享结束后能够及时回收
复制有两个方法:
第一:copy方法:
根据该位图的大小产生一个新位图,根据指定的结构设置新位图的结构,然后把位图的像素拷贝到新位图中。如果不支持该转换,或者分配内存失败,那就返回NULL。返回的位图和原图有同样的像素密度。
参数
config 结果图预期的结构;
isMutable 如果是true,那么产生的图片是可变的。(比如,它的像素能被修改)
返回值 新的位图。如果拷贝操作不能执行,则返回NULL。
Bitmap alterBitmap=screenBmp.copy(Bitmap.Config.ARGB_8888, true);
ALPHA_8就是Alpha由8位组成
ARGB_4444就是由4个4位组成即16位,
ARGB_8888就是由4个8位组成即32位,
RGB_565就是R为5位,G为6位,B为5位共16位
第二:新建空白bitmap,然后绘制(优点:可以进行自定义的处理)
//创建原图的一个副本。 可修改 创建的是一个空白的图形。 Bitmap alterBitmap = Bitmap.createBitmap(screenBmp.getWidth() * 2, screenBmp.getHeight() * 2, screenBmp.getConfig()); //1.准备一个画板 在上面放上准备好的 空白的位图 Canvas canvas = new Canvas(alterBitmap); //2.准备一个画笔 Paint paint = new Paint(); paint.setColor(Color.BLACK); //3.画画 Matrix m = new Matrix(); m.setScale(2.0f, 2.0f); canvas.drawBitmap(screenBmp, m, paint);
阅读全文
0 0
- Bitmap的复制和注意
- 复制Icon和复制Bitmap的方法
- 关于bitmap的赋值和复制【谨记】
- 复制bitmap的方法
- android-关于bitmap和canvas的一些注意的细节
- bitmap读取时的注意点
- Android Bitmap 转 Drawable 注意的问题
- Flex中如何利用Bitmap和BitmapData类复制图片到一个TileList控件的例子
- 复制构造函数应该注意的问题
- mysql到oracle复制的注意点
- png图片转为bitmap图片要注意的地方
- bitmap 从RGB转到HSV 时的注意点
- Bitmap使用过程中需注意的点及优化
- Bitmap和canvas的应用
- Bitmap和Drawable的转换
- Bitmap和YUV的转换
- Drawable和Bitmap的区别
- Drawable和Bitmap的转换
- tomcat部署方式
- Android安全模式
- Zookeeper系列—配置文件详解
- shell
- ESB详解
- Bitmap的复制和注意
- Android 开发笔记 4:用模拟器测试Android 镜像
- c程序中内存管理和内存分配函数[干货!!!]
- Samba服务器配置
- Hybrid APP 混合开发模式的选择之路(六:JSBridge---Native代码与JS代码的通信桥梁)
- 补发上周六的记录
- SSH服务
- 产品需求文档(PRD)
- 蓝桥杯练习题之十六进制转八进制