Github源碼:https://github.com/LinJZong/AndroidProject.git
模仿360相機,圖片資源來源於360相機,僅供學習使用。使用過程中遇到問題或Bug可發我郵箱405376689@qq.com。對了,未做兼容性測試不保證所有機型和sdk版本可通用。
截圖如下:
目前完成了拍照、保存、圖片壓縮、觸摸聚焦、拍照成功附帶動畫效果、閃光燈切換、手勢縮放等功能,功能持續更新中。
2月份補充:新增相冊功能。包含縮略圖預覽、圖片刪除、長按進入刪除模式、全選等。
2月份補充2:新增大圖查看功能。自定義了MatrixImageView用以實現大圖的手勢放大、縮小、拖動、翻頁。該功能可參考百度貼吧的圖片查看功能。
3月10號補充:新增了視頻錄制、視頻播放功能;新增水印照片功能;新增內置的視頻播放器功能。修改了若干Bug。
最近更新的較頻繁,就不放csdn了,等功能全做完了再傳csdn。介紹下目前主要幾個功能類湊夠200字。
public class CameraView extends SurfaceView implements SurfaceHolder.Callback{
一個繼承於SufaceView的自定義類,該類封裝實現了和camera的交互工作,包括camera的初始化、銷毀、zoom級別設置、閃光燈模式設置、對焦功能,同時監聽屏幕變化,在橫豎屏時生成不同高寬的圖片。
public class FocusImageView extends ImageView implements AnimationListener{
自定義聚焦圖片。封裝了聚焦圖片的動畫效果。
public class TempImageView extends ImageView implements AnimationListener
臨時圖片。用以在拍照成功時執行一個圖片下移到左下角的動畫效果。
public class CameraContainer extends RelativeLayout implements PictureCallback ,OnSeekBarChangeListener,AutoFocusCallback
相機類容器。最重要的自定義類。包含了上述三個View。若要自定義相機Activity,只需在layout中引用該類即可。該類封裝了圖片壓縮功能、圖片保存功能、觸屏聚焦功能,手勢設置相機縮放級別功能。Activity和相機的交互將通過它提供的接口進行。