close

作者:miaowmiaow來源:https://juejin.cn/post/7013274417766039560

前言

產品拿着IOS的微信圖片編輯給我看了下說:「這個功能應該很簡單吧,你應該很快就能做好吧」。如果當時我的桌子上有塊🧱的話,估計就是另一個結局了。😂 吐槽結束,先來看效果圖吧

來吧,展示

本圖片編輯器實現了IOS微信圖片編輯除表情貼紙外的所有功能包括用戶體驗。源代碼在1000行左右,閱讀起來基本沒有難度,非常適合二次開發。實現功能:塗鴉、貼紙、文字、馬賽克、裁剪

主要知識點:

Canvas

Xfermode

GestureDetector

ScaleGestureDetector

快速使用1PictureEditorDialog.newInstance()2.setBitmapPath(path)3.setEditorFinishCallback(object:EditorFinishCallback{4overridefunonFinish(path:String){5valbitmap=BitmapFactory.decodeFile(path,BitmapFactory.Options())6}7})8.show(fragmentManager)

如上所示:

通過PictureEditorDialog調用圖片編輯器

通過setBitmapPath(path)傳入圖片路徑

通過setEditorFinishCallback(callback)獲取編輯後的圖片地址

如果覺得PictureEditorDialog不能滿足需求,還可以通過PictureEditorView來自定義樣式

自定義使用 1<com.example.miaow.picture.editor.PictureEditorView 2android:id="@+id/pic_editor" 3android:layout_width="match_parent" 4android:layout_height="match_parent"/> 5 6 7 8picEditor.setBitmapPath(path) 9picEditor.setMode(PictureEditorView.Mode.STICKER)10picEditor.setGraffitiColor(Color.parseColor("#ffffff"))11picEditor.setSticker(StickerAttrs(bitmap))12picEditor.graffitiUndo()13picEditor.mosaicUndo()14picEditor.saveBitmap()

如上所示:

通過setBitmapPath(path)傳入圖片路徑

通過setMode(mode)設置編輯模式,分別有:塗鴉,橡皮擦,馬賽克,貼紙

通過setGraffitiColor(color)設置塗鴉畫筆顏色

通過setSticker(StickerAttrs(bitmap))設置貼紙

通過graffitiUndo()塗鴉撤銷

通過mosaicUndo()馬賽克撤銷

通過saveBitmap()保存編輯圖片

PictureEditorView就介紹到這裡,具體使用請查看PictureEditorDialog

圖片裁剪 1<com.example.miaow.picture.editor.PictureClipView 2android:id="@+id/clip" 3android:layout_width="match_parent" 4android:layout_height="match_parent"/> 5 6 7 8clip.setBitmapResource(bitmap) 9clip.rotate()10clip.reset()11clip.saveBitmap()

如上所示:

通過setBitmapResource(bitmap)傳入裁剪圖片

通過clip.rotate()圖片旋轉

通過clip.reset()圖片重置

通過clip.saveBitmap()保存裁剪框內圖片

PictureClipView就介紹到這裡,具體使用請查看PictureClipDialog

講在最後,如無法加載圖片,請確認存儲權限

Thanks

以上就是本篇文章的全部內容,如有問題歡迎指出,我們一起進步。如果喜歡的話希望點個讚吧,您的鼓勵是我前進的動力。謝謝~~

項目地址

github:github.com/miaowmiaow/…

推薦閱讀:

AndroidIO監控 | 性能監控系列

程序員該如何寫好自己的簡歷,一位 5 年中大廠老哥跟你聊聊

面試官:簡歷上最好不要寫Glide,不是問源碼那麼簡單

一文學會字節碼替換,再也不用擔心隱私合規審核

ConstraintLayout最詳細使用,減少嵌套優化ui,提升app性能

Android 代碼覆蓋率如何實現

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()