AndroidDev 板


LINE

※ 引述《sheep922420 ()》之铭言: : 如题 : 小弟目前在一个 FrameLayout 上 : 加了一个 surfaceView : 并利用 Camera 在 surfaceView 全萤幕预览 : 并且要在预览画面加上一个可任意移动的图片(ImageView) 而且可以缩放 : 问题1 : 目前已经在画面加好 ImageView 了 : 可是 ImageView 只能在预览画面上 "一小块正方形区域" 做移动缩放 : 和目的 "可在预览画面上任意移动" 还差一大段距离 : 请问是该对 ImageView FrameLaout 或是 surfaceView 做参数设定? : 或是有哪些关键字可以给小弟参考呢? : 感谢板上高手!!! 谢谢!! 小弟在预览画面上的图片(ImageView) 和预览画面(surfaceview)做合成 可是在取出 已经移动和放大的 ImageView 内图片资料 转成 Bitmap的时候後一直会会发 生 Out Of Memory 处理照片合成的code如下 //=========================================================================== // JPEG CALLBACK函数内处理照片row data BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; Bitmap bm = BitmapFactory.decodeByteArray(_data, 0, _data.length,options); //取得 已经移动和放大的 ImageView 内图片资料 转成 Bitmap PicImageView.setDrawingCacheEnabled(true); <===========由logcat知道一直发 生 OOM 的点 Bitmap overlay = PicImageView.getDrawingCache(true); File myCaptureFile = new File(strCaptureFilePath); //把两个bitmap 画在同一个cave上 Bitmap bmOverlay = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig()); Canvas canvas = new Canvas(bmOverlay); canvas.drawBitmap(bottom, new Matrix(), null); canvas.drawBitmap(overlay, 0, 0, null); //存到我要的路径 File myCaptureFile = new File(strCaptureFilePath); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile)); bmOverlay.compress(Bitmap.CompressFormat.JPEG, 100, bos); bos.flush(); bos.close(); //============================================================================= 找了许多网路资料 但是还是只bitmap很耗记忆体 想请问板上高手 我该从哪一点切入去修改?? 感谢各位大大!!! >"< --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.228.96
1F:推 tac0wu:PicImageView 你这是Class 还是 Instance阿 02/26 23:13
2F:→ tac0wu:还有你这样开了好多memory 没有到必要不要用cache 你如果只 02/26 23:15
3F:→ sheep922420:是 Instance ~ 02/26 23:15
4F:→ tac0wu:是单纯图片 就拿你原来的Bitmap去画就好了 不要再多浪费 02/26 23:15
5F:→ tac0wu:一次记忆体 02/26 23:16
6F:→ tac0wu:还有你用甚麽device 如过正常一点的device 这三张bitmap应 02/26 23:17
7F:→ tac0wu:该不会搞到OOM 02/26 23:17
8F:→ sheep922420:是因为已经在预览画面上移动缩放了图片 02/26 23:18
9F:→ tac0wu:你加一些Log trace你的memory使用量 02/26 23:18
10F:→ tac0wu:你就用原图 加上一些matrix 画在canvas上就好了 不要偷懒 02/26 23:19
11F:→ sheep922420:希望存好的档案是 图片能够覆盖在照片上 02/26 23:19
12F:→ sheep922420:达到类似 在照片上的特定位置加上一个花俏的图片 02/26 23:21
13F:→ tac0wu:你拿出cache的图片 我猜是某张bitmap 经过scale translate 02/26 23:21
14F:→ sheep922420:并存成档案 02/26 23:21
15F:→ tac0wu:所以你会加很多张图片在照片上 02/26 23:22
16F:→ sheep922420:我的原图是 res/drable下的 png档 02/26 23:23
17F:→ tac0wu:你好像只加一个花俏图片 02/26 23:23
18F:→ sheep922420:大大的意思是直接用png档?? 02/26 23:23
19F:→ tac0wu:把png 读出来成bitmap後 让他在两个地方用到 02/26 23:24
20F:→ tac0wu:一个是画在你的ImageView的canvas上 一个就是画在你自己 02/26 23:24
21F:→ tac0wu:生成的canvas上 02/26 23:24
22F:→ sheep922420:目前是只有加一个, 会不会加到两个还不确定, 02/26 23:24
23F:→ sheep922420:是否加到两个, 我会再询问user 02/26 23:25
24F:→ tac0wu:你是怎麽让那张花俏图片变大变小移动的 是用带matrix进去吗 02/26 23:25
25F:→ sheep922420:是的,是在onTouch 方法中使用 matrix 来实做的 02/26 23:27
26F:→ tac0wu:那你就把matrix 那出来再将bitmap 画在你生成的canvas上就 02/26 23:29
27F:→ tac0wu:可以了 02/26 23:29
28F:→ tac0wu:那=>拿 02/26 23:29
29F:→ sheep922420:大大不好意思...不理解matrix 拿出来的意思?? 02/26 23:32
30F:→ tac0wu:getImageMatrix(); 02/26 23:33
31F:→ tac0wu:Canvas.drawBitmap(Bitmap, Matrix, Paint); 02/26 23:34
32F:→ sheep922420:虽然我还不太了解大大,说的用法,我先去查这些method 02/26 23:36
33F:→ sheep922420:的意思,和用法 02/26 23:36
34F:→ sheep922420:感谢 T.T 02/26 23:37
35F:推 tac0wu:不过 我觉得你的root cause应该不在这 除非你的机器真的太 02/26 23:39
36F:→ tac0wu:鸟了 02/26 23:39
37F:→ sheep922420:感觉上是指不用读出bitmap, 直接把图片在特定位置 02/26 23:39
38F:→ sheep922420:而且指定特定大小. 02/26 23:40
39F:→ tac0wu:直觉上的样子是 你有一张bitmap 你将他调整过後 画在另一张 02/26 23:40
40F:→ tac0wu:上面 最後在将那一张的bitmap 画在你最後生成的canvas上 02/26 23:41
41F:→ sheep922420:想确机器是否太鸟...我是该查询机器的哪几项规格呢?? 02/26 23:41
42F:→ tac0wu:你大可一开始就将你的bitmap 画在canvas上 02/26 23:41
43F:→ tac0wu:你直接说你用甚麽手机吧 查一下就知道了 02/26 23:42
44F:→ sheep922420:好的!!我照这个方式修该看看!! 02/26 23:42
45F:→ tac0wu:有可能是因为你是monitor解析度太高 然後手机版本又太旧 02/27 00:07
46F:→ tac0wu:单一app的memory上限很低 所以一下就撑破了 02/27 00:08







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP