做了一款App,本來是畢業設計但是畢業的時候還沒有做完,因為大部分時間都改論文去了,你們都懂的。現在畢業了在工作之余把App基本上做完了。為什么說基本上呢,因為我覺得還有很多功能還沒實現,還要很多bug,還要很多東西有待研究。我還會繼續更(ren)新(jian)版(bu)本(chai)的,即使沒多少人下載~!
本來當時命題的時候想的是做學校范圍內的照片筆記App,因為畢竟我們上課的筆記都是用手機拍下來的,有時候還會錄像,然后會有個小小的社交,類似超級課程表那樣的,但是其目的是分享自己上課的時候拍攝的筆記,考試前復(yu)習的時候更方便。但是時間不夠沒有做成誒,服務器那塊PHP也基本上忘的差不多了,而且我也沒有服務器。。。
App
http://android.myapp.com/myapp/detail.htm?apkName=com.yydcdut.note
(可以直接下載)

目前就上了應用寶和Flyme的商店,因為身份證拿回來老家處理檔案和戶口去了,所以沒法申請開發者。
應用信息
習慣了用手機拍照來記錄一些重要的事情和資料?
拍完照之后回過頭卻早已忘記當初拍攝的原因和照片的意義,只恨當初沒法在照片上寫上一筆!
各種凌亂的照片無法歸類整理?想起一張照片卻又怎么都找不到?
拍攝的照片不是美美的?拍攝的照片不清晰?
換了手機照片和筆記都沒法導過來?
PhotosNoter - 就是這樣一款:
~能幫你快速整理和分類你的照片
~能在第一時間將照片分類,永遠不會忘記拍下它的理由
~通過不同的角度來玩轉你的照片
~照片不是美美的話可以濾鏡一下下
~在圖片上寫寫畫畫
~第三方登錄,雲備份
~想把重要的照片和筆記分享給朋友
大概功能
App實際上可以說是一個相冊,只是在相冊的基礎上加上了筆記這塊功能。
- 相冊功能(ImageLoader加載圖片)
- 分類功能
- 拍照功能(系統和自己寫的)
- 本地上傳圖片(系統的,后期打算自己寫)
- 文字編輯
- 濾鏡(Camera360 EDIT SDK)
- 文字編輯
App中我認為的干貨
- 相機的狀態機(狀態機不對很容易崩哦~還要參數部分)。
- 照片分為兩種,一個是大圖,一個是小圖,小圖是相冊界面縮略圖的時候加載的,大圖是可以照片詳情頁面的時候加載的。
- 每個筆記的數據庫ID都是某個分類的外鍵。
- 圖片處理,這是一個老生常談的了。但是在App中,發現很多這方面的問題我還沒有解決。比如紅米1s后置攝像頭800W,那么拍一張圖是3M左右,但是Camera的照片的0度是我們正常手機視角的90度。那么我們需要把這個3M的圖片給翻轉過來,又不想失分辨率,誒,java臣妾做不到啊!那么現在的解決辦法是不去拍攝800W像素的,拍大概400-500W像素的不會OOM的。
- 沙盒。每次拍完照都是先把數據放到沙盒數據庫中,然后再到服務中去作圖,做完的話再從數據庫中刪除掉。作圖的Service是和Camera那個Activity綁定的(bind方式),當不再拍照的時候就退出了Service,然后回到相冊界面的時候會去判斷沙盒數據庫中是否有沒有做完的圖,沒有做完的話另外啟一個進程的Service繼續作圖。
- 圖片處理完之后(比如在Service中做完了圖之后)通知更新界面,用的是廣播。
- 高斯模糊(網上找的),如果圖大的話會非常慢。
- activity退出和進入的動畫。這塊弄了很久,主要是想模仿Android5.0的那種,但是有些界面做出來超級卡,卡到爆。
- 主題設置,沉浸式狀態欄(5.0)。
- (后續添加GridView的動畫)。
- (文字編輯中的Emoji和語音輸入)。
- (等等等等。。。。。。)
大概想到的只有那么多,在寫App的過程中學習到了許多,去看了許多開源的東西,真的學到了好多。所以我也想要開源!
我也要開源
因為整個App技術含量不高,有很多控件都是開源的直接拿來用的,但是在App中我也做了許多控件,打算把他們開源出來。
SlideAndDragListView
歡迎Star!
這個已經放到github上了,但是我還沒有整理好,現在抽離出來功能都已經實現了,bug也被我改掉了不少,目前我這邊簡單測試的話基本上沒有什么bug了。接下來我要做的是把控件抽成一個Module。
好消息:我注釋寫的很詳細。
不要問我為什么那么詳細,我不會告訴你青軸鍵盤碼起來根本停不下來。
主要功能
- item可以側滑,側滑之后顯示出來的兩個button可點擊。
- item可以拖放移動。
大概實現
- ListView中的setOnItemClick()和setOnItemLongClick()都被我覆蓋掉了,因為和手勢沖突,所以我就自己另外在onTouch中自己定義了LongClick事件。
- 側滑是Scroller實現的。
- 拖放是通過OnDragListener實現的。
Camera&Camera2 MVC
這部分的Camera2部分都還沒有寫,只寫了Camera部分。
當上面那個弄完之后我就開始弄這個辣。到時候另啟一篇文章吧,因為Camera2真的很棒。(N5,N6上基本上支持所以參數,但是像魅族,小米那些5.0的Rom大部分都不支持,還是Legacy-Level的)。
目錄結構:

我是天王蓋地虎的分割線
我不敢直接開源App,因為我覺得App寫的並不是那么的好,而且還要不斷的更新版本。但是后面還是回考慮開源出來的。
https://github.com/yydcdut/SlideAndDragListView
https://github.com/yydcdut/Camera-Camera2-MVC
謝謝大家,散花歡迎到github上star喲