国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現圖片疊加功能

2019-10-22 18:12:24
字體:
來源:轉載
供稿:網友

前幾天工作碰到這樣一個需求,將二維碼與一張海報疊加,并將合成后的海報分享到微信。由于經驗不足,在實現功能的過程中,碰到了這樣或那樣的問題,我就來分享一下我碰到的坑。

一.圖片疊加的處理

處理思路是在一張新建畫布上分別將兩張圖片繪制出來

        1.首先獲取需要兩張圖片,并轉成Bitmap類型

Bitmapbg = ((BitmapDrawable) getResources().getDrawable( R.drawable.background)).getBitmap();Bitmapfg = ((BitmapDrawable) getResources().getDrawable( R.drawable.foreground)).getBitmap();

        2.創建一張大小和背景圖一致的位圖

intbgWidth=bg.getWidth();intbgHeight=bg.getHeight();intfgWidth=fg.getWidth(); //前景圖寬度,用于后面計算前景圖的繪制坐標

/*這里不詳細解釋RGB_565和RGB_8888,RGB_6666的區別,我是因為后來分享到微信的過程中,發現圖片過大,就盡量讓圖片更小,值得一提的是,我有試過RGB_6666,發現getConfig()圖片的參數并沒有變化,看了源碼才知道,即使是選擇RGB_6666,也會被轉成RGB_8888,應該是畫質太慘目忍睹了,Google便放棄了RGB_6666了*/

Bitmapnewbmp=Bitmap.createBitmap(bgWidth,bgHeight,Bitmap.Config.RGB_565);

         3.新建畫布,并畫出背景圖和前景圖

Canvascv=newCanvas(newbmp);//drawbginto//在0,0坐標開始畫入bgcv.drawBitmap(bg,0,0,null);//drawfginto//開始畫入fg,可以從任意位置畫入,具體位置自己計算cv.drawBitmap(fg,(bgWidth-fgWidth)/2,bgHeight/4*3-500,null);

二.圖片壓縮處理

在使用微信sdk分享圖片的過程中,發現圖片過大會導致微信拉起失敗,處理思路是將縮放至原來的一半,圖片占用內存自然就減少了,是不是簡單粗暴呀

Matrixmatrix=newMatrix();matrix.setScale(0.5f,0.5f);Bitmap compbmp=Bitmap.createBitmap(newbmp,0,0,newbmp.getWidth(),newbmp.getHeight(),matrix,true);

三.最終效果

Android,圖片疊加

以上所述是小編給大家介紹了Android圖片疊加功能代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高碑店市| 罗田县| 叙永县| 陕西省| 馆陶县| 秦皇岛市| 龙海市| 香河县| 仁化县| 贵港市| 威信县| 同心县| 泊头市| 永靖县| 青神县| 罗山县| 河曲县| 轮台县| 斗六市| 壤塘县| 三门峡市| 逊克县| 武鸣县| 邹平县| 澄江县| 贡山| 巴彦淖尔市| 崇文区| 乌拉特后旗| 淅川县| 鹤峰县| 河曲县| 长沙县| 高碑店市| 洛川县| 孝昌县| 抚州市| 和平县| 逊克县| 乐都县| 敦煌市|