Android 基於ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android萬能播放器aaa

weixin_34321977發表於2017-06-26

MDPlayer萬能播放器

MDPlayer,基於ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android萬能播放器,可以播放本地和線上視訊,可以瀏覽宅男殺手妹紙圖片,UI設計遵循 Material Design。

GitHub地址:https://github.com/Dawish/MDPlayer


UI瀏覽:

這裡寫圖片描述 
這裡寫圖片描述 
這裡寫圖片描述 
這裡寫圖片描述 
這裡寫圖片描述 
這裡寫圖片描述 
這裡寫圖片描述 
這裡寫圖片描述

1.UI設計:

  • 列表使用RecyclerView,item為CardView並設定ripple波紋點選效果
  • viewpager指示器使用TabLayout
  • 側滑欄使用NavigationView
  • 圖片詳情使用開源控制元件PhotoView,支援大縮小,旋轉等等操作。
  • FloatingButton為開源控制元件FloatingActionMenu

2.App設計:

  • MVP架構,第一次真正使用MVP,真的使用了才會發現MVP的優勢,MVP可以使Activity和Fragment非常簡潔,Activity和Fragment中也不需要知道是怎麼操作和流轉的,我們只需要在回撥介面中操作更新UI就可以了。
  • 所以得非同步操作都使用Rxjava+Rxandroid,以前也是沒用過,用過才發現、Rxjava是真的強大,Rxjava擁有非常豐富的操作符,我們靈活使用Rxjava可以創造無限可能,Rxjava就像搭建積木,Rxjava的操作符就行是積木塊,使用Rxjava我們可以搭建出各種各種的積木,可以創造出很多可能,前提是你對Rxjava十分了解。
  • 網路請求採用retrofit2.0,retrofit2.0本身就很強大,配合、Rxjava後就更加強大了,retrofit2.0的使用我還沒有更加深入的研究,日後再搞。
  • 離線快取,離線快取策略為,每次進入都是顯示上一次的資料,本次的資料快取下來,留著下一次顯示,這樣可以加快UI顯示速度,可以離線使用App。
  • 圖片載入使用picasso,picasso本身支援本地快取。

3.知識點:

通過本app你可以學到: 
ijkplayer-Android 編譯封裝和整合 
- MVP架構,雖然我的這個app不是很複雜,但是大概的MVP是有的,首先我承認我的Model層寫得不是很好。 
- 可以學習到Rxjava的使用,使用Rxjava遞迴讀取記憶體所有的視訊檔案並分類,可以學習到justfromflatMapgroupByfilter等Rxjava操作符,相對別的app我用到的操作符相對還算多的。 
- 學習到retrofit2.0的使用,結合Rxjava做網路請求。 
- 離線快取,可以學習到離線資料快取策略,以及快取工具的使用。 
BaseActivityBaseFragmentBaseRecyclerViewAdapterBaseRecyclerViewHolder的封裝。 
- Material Design和android5.0以後的新控制元件使用

4.依賴庫:

    //FloatingActionMenu
    compile 'com.github.clans:fab:1.6.4'
    //retrofit
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
    compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
    //Rxjava + Rxandroid
    compile 'io.reactivex:rxandroid:1.2.0'
    compile 'io.reactivex:rxjava:1.1.5'
    //blurview
    compile 'com.eightbitlab:blurview:1.0.2'
    //photoview
    compile 'com.bm.photoview:library:1.4.0'
    //picasso
    compile 'com.squareup.picasso:picasso:2.5.2'
    //umeng
    compile 'com.umeng.analytics:analytics:latest.integration'

5.APK下載:

上架中…

6.知識點引導:

7.下版本改進

  • 下版本希望改進model層,對資料操作更加簡潔
  • 增加視訊播放歷史記錄
  • 自定義視訊播控
  • 使用註解替代findViewById

相關文章