Material Design風格的開源照片筆記:PhotoNoter

jopen 8年前發布 | 12K 次閱讀 Android開發 移動開發 PhotoNoter

PhotoNoter

Material Design風格的開源照片筆記。 Material Design風格的開源照片筆記。(MVP+Dagger2+RxJava+Dex分包異步加載)

下載:

編譯

如果編譯不過,錯誤日志是:

Error:A problem was found with the configuration of task ':app:packagexxxxDebug'.

File ‘/xxxxxxxxxx/debug.keystore' specified for property 'signingConfig.storeFile' does not exist.

將{$projectName}/app/build.gradle中的下面代碼刪除

debug{
            storeFile file("debug.keystore")
     }

應用截圖

動畫gif

界面

技術點

  1. 整體項目MVP結構(1.2.0之前是MVC)。
  2. Dagger2。
  3. 相機MVC架構(還沒有重構為MVP),API>=21使用Camera2,API<21使用Camera。
  4. 相機的狀態機(狀態機不對很容易崩哦~還要參數部分)。
  5. 照片緩存分為兩種,一個是大圖,一個是小圖,小圖是相冊界面縮略圖的時候加載的,大圖是查看圖片的時候加載的。
  6. 圖片處理,這是一個老生常談的了。但是在App中,發現很多這方面的問題我還沒有解決。比如紅米1s后置攝像頭800W,那么拍一張圖是3M左右,但是Camera的照片的0度是我們正常手機視角的90度。那么我們需要把這個3M的圖片給翻轉過來,又不想失分辨率,誒,臣妾做不到啊!那么現在的解決辦法是不去拍攝800W像素的,拍大概400-500W像素的不會OOM的。
  7. 沙盒。每次拍完照都是先把數據放到沙盒數據庫中,然后再到服務中去作圖,做完的話再從數據庫中刪除掉。作圖的Service是和Camera那個Activity綁定的(bind方式),當不再拍照的時候就退出了Service,然后回到相冊界面的時候會去判斷沙盒數據庫中是否有沒有做完的圖,沒有做完的話另外啟一個進程的Service繼續作圖。
  8. Activity退出和進入的動畫。這塊弄了很久,主要是想模仿Android5.0的那種,但是有些界面做出來超級卡。
  9. 一些UI的動畫,比如 “ 意見反饋”、 “ 語音輸入” 這里面的動畫。
  10. 主題設置,沉浸式狀態欄(5.0)。這部分為了適配國內的ROM,我寫的很奇怪很惡心,但是畢竟還是達到了效果的。
  11. 切換主題。
  12. 可以滑動item和可以拖放item的ListView(SlideAndDragListView)。
  13. RxJava + RxAndroid(RxCategory/RxPhotoNote/RxSandBox/RxFeedBack/RxUser)。
  14. dex分包處理,雖然還還沒有達到65536個方法,但是我還是進行了分包處理,我為什么這樣做呢?我想把最先用到的幾個類和依賴類放到主dex里面,讓主dex的大小小一些,這樣在第一次啟動的時候速度快一些,同時異步去加載第二個dex!異步!異步!異步!重要的事情要說三遍。目前自己去操作dex優化的結果是比系統配置第一個dex的包要小0.1M.....

更新版本說明

ChangeLog

致謝

 

項目地址: https://github.com/yydcdut/PhotoNoter

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!