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燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP