Android仿今日頭條的開源項目-TodayNews

https://github.com/yewei02538/TodayNews

一個仿今日頭條的開源項目,是基于MVP+RxJava+Retrofit

Blog

Android仿今日頭條的開源項目

自適應(yīng)Tab寬度可以滑動文字逐漸變色的TabLayout

Apk

點擊下載

第三方庫

ColorTrackTabLayout

BaseRecyclerViewAdapterHelper

ImageLoader

Retrofit

RxJava

ButterKnife

MultipleTheme

Gson

JieCaoVideoPlayer

技術(shù)要點

主要是一些第三方庫的使用

多種Item布局展示->BaseRecyclerViewAdapterHelper

日夜間模式切換->MultipleTheme

新聞詳情我采用的是RecyclerView添加頭的方式添加WebView(當(dāng)然是Adapter里面添加),加載頁面成功之后獲取評論信息,點擊評論圖標(biāo)滑動至評論第一條,這里我是調(diào)用recyclerView.smoothScrollToPosition(1);

視頻播放我使用的是JieCaoVideoPlayer,一群大牛封裝的代碼,底層實際使用ijkplayer,視頻源均使用非正常手段獲取,視頻源地址分析請看我的另一篇博客手?jǐn)]一個今日頭條視頻下載器

在使用MultipleTheme的時候唯一的缺陷就是需要在布局里面大量使用到自定義控件,這對于我們的項目而言,布局看著很冗余,也有點惡心。。我有時候就在想,那我可不可以寫原生控件,然后在特定的時機(jī)來個偷梁換柱換成我們的自定義控件呢?似乎好像是可以的,當(dāng)我們加載布局的時候最終都會用LayoutInflater來加載,所以我打算從這里入手,看源碼我發(fā)現(xiàn)有一個接口可以利用->Factory,這個接口有一個方法

publicinterfaceFactory{/*** Hook you can supply that is called when inflating from a LayoutInflater.* You can use this to customize the tag names available in your XML* layout files.**

* Note that it is good practice to prefix these custom names with your* package (i.e., com.coolcompany.apps) to avoid conflicts with system* names.** @param name Tag name to be inflated.* @param context The context the view is being created in.* @param attrs Inflation attributes as specified in XML file.** @return View Newly created view. Return null for the default*? ? ? ? behavior.*/publicViewonCreateView(Stringname,Contextcontext,AttributeSetattrs);? ? }

果然功夫不負(fù)有心人,如果我們實現(xiàn)了這個接口,最終加載布局的時候那么就會調(diào)用onCreateView在這里面來實現(xiàn)偷梁換柱替換成我們的自定義控件

版本

v1.0.1

修復(fù)欄目刪除崩潰

修改首頁多個頻道顏色漸變?yōu)?a target="_blank" rel="nofollow">ColorTrackTabLayout

加入頻道存儲至本地

添加修改或移動頻道首頁聯(lián)動更新

加入加載中動畫

v1.0.0

基本框架以及首頁獲取新聞數(shù)據(jù)展示、日夜間切換

加入視頻解析以及播放功能

TODO

微頭條

無圖模式

加入今日頭條的下拉刷新

加入真實數(shù)據(jù)(登陸,注冊、收藏等),使用Bmob后端云

加入個人主頁、搜索等未寫界面

待添加...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,828評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評論 19 139
  • 樊勝美一輩子都在渴求在上海有個房子,安定的生活,逼得王柏川連商住兩用都要上車了,教邱瑩瑩把握住有車有房的應(yīng)勤。然后...
    不正常生物研究中心閱讀 445評論 0 14
  • 我把雪放進(jìn)一個塑料盒,把它放到冰箱里。我要一直等到,生命結(jié)束。 1月1日 雪還在,好好的在冰箱里。我...
    冰糖蘿卜閱讀 185評論 0 0
  • 2016無論遺憾,還是圓滿,都已經(jīng)成為過去。 總結(jié)這一年,猴年,呵呵,我被猴耍了。創(chuàng)業(yè)失敗,婚禮破...
    燈塔110閱讀 379評論 0 0

友情鏈接更多精彩內(nèi)容