RecyclerView實(shí)現(xiàn)的彈幕之中文DOC

簡介

彈幕動(dòng)畫通過重寫RecyclerView的默認(rèn)動(dòng)畫"DefaultItemAnimator"來實(shí)現(xiàn)精续,更改默認(rèn)動(dòng)畫過后的文件地址在DmItemAnimator,里面的作用我簡單的注釋了一下柳畔。

Github地址:https://github.com/xujiaji/DMView
如有使用過程中出現(xiàn)bug歡迎私信!
英語不好剥哑,英文文檔有些地方讓人不好理解掠拳,也歡迎糾正。

DMView

dmlib類庫可以幫助你只需要簡單的幾步就可以添加展示彈幕筐赔,本類庫由RecyclerView為基礎(chǔ)完成铣猩,使用Glide加載頭像。

版本

2.0.0

演示

彈幕GIF演示

安裝

將類庫添加到您的項(xiàng)目中茴丰,只需要在您的項(xiàng)目buil.gradle文件中的dependency{}中添加如下信息:

dependencies {compile 'com.github.xujiaji:dmlib:1.1.1'}

使用(總共四步哦4锩蟆)

1. 需要在布局中添加RecyclerView(因?yàn)橐訰ecyclerView為主體)

<android.support.v7.widget.RecyclerView        
  android:id="@+id/rvBarrage"       
  android:layout_width="match_parent"        
  android:layout_height="match_parent"        
  android:layout_marginTop="90dp"        
  android:layout_marginBottom="90dp"        
  android:overScrollMode="never" />

2.初始化 "DanMu" 在獲取了RecyclerView之后

①初始化-方法一 : 使用“dmlib”默認(rèn)的布局和行數(shù)
rvBarrage = (RecyclerView) findViewById(R.id.rvBarrage);
DanMu.init(rvBarrage);
②初始化-方法二: 配置您想要的布局
Config config = new Config(
        R.layout.item,
        R.id.tvName,
        R.id.tvMsg,
        R.id.imgHead);
        config.setRowNum(5);//設(shè)置您要設(shè)置的行數(shù)
        DanMu.init(rvBarrage, config);
  • 這是上面的運(yùn)行結(jié)果,代碼請轉(zhuǎn)到sample項(xiàng)目贿肩。


    自定義的布局
  • 備注: 如果您不想要其中一個(gè)布局峦椰,比如說您不需要名字,那么對應(yīng)設(shè)置成0汰规。

       Config config = new Config( 
       R.layout.item,
        0,
        R.id.tvMsg,
        R.id.imgHead);
③初始化-方法三:設(shè)置彈幕的行數(shù)
        Config config = new Config();
        config.setRowNum(3);
        DanMu.init(rvBarrage, config);
④初始化-方法四:設(shè)置彈幕的展示時(shí)間
        Config config = new Config();
        config.setDuration(10000);
        DanMu.init(rvBarrage, config);

3.添加一個(gè)彈幕

DanMu.call()        
       .picUrl("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=150237755,4294706681&fm=116&gp=0.jpg") 
       .name("xujiaji") 
       .msg("Bullet screen massage show ...")
       .show();
  • 注意: 如果您使用的是默認(rèn)布局汤功,那么您也可以通過以下方式展示不同的效果。

No.1

DanMu.call()        
        .picUrl("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=150237755,4294706681&fm=116&gp=0.jpg")
        .msg("Bullet screen massage show ...")
        .show();
頭像和消息

No.2

DanMu.call()
        .msg("Bullet screen massage show ...")
        .show();
只有消息.png

No.3

javaDanMu.call()
        .name("xujiaji")
        .msg("Bullet screen massage show ...")
        .show();
名字和消息.png

No.4

DanMu.call()        
        .picUrl("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=150237755,4294706681&fm=116&gp=0.jpg")
        .show();
只有頭像

3. 銷毀彈幕

    @Override
    protected void onDestroy() {
        DanMu.destroy();
        super.onDestroy();
    }

Activity中所有的代碼

public class MainActivity extends AppCompatActivity {
    private RecyclerView rvBarrage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rvBarrage = (RecyclerView) findViewById(R.id.rvBarrage);
        //sample.1: default init
        DanMu.init(rvBarrage);

        //sample.2: config yourself layout
//        Config config = new Config(
//                R.layout.item,
//                R.id.tvName,
//                R.id.tvMsg,
//                R.id.imgHead);
//        config.setRowNum(5);  // setting bullet screen's rows
//        DanMu.init(rvBarrage, config);

        //sample.3: setting bullet screen's rows
//        Config config = new Config();
//        config.setRowNum(3);
//        DanMu.init(rvBarrage, config);

        //sample.4 setting bullet screen's animator duration
//        Config config = new Config();
//        config.setDuration(10000);
//        DanMu.init(rvBarrage, config);
    }

    public void onAddClick(View view) {
        DanMu.call()
                .picUrl("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=150237755,4294706681&fm=116&gp=0.jpg")
                .name("xujiaji")
                .msg("Bullet screen massage show ...")
                .show();
    }

    @Override
    protected void onDestroy() {
        DanMu.destroy();
        super.onDestroy();
    }
}

“dmlib”更新日志

v2.0.0

更改了動(dòng)畫庫溜哮,原先是從github上面的一個(gè)RecyclerView動(dòng)畫類庫里面拉下來的幾個(gè)文件滔金,如今已經(jīng)刪掉。現(xiàn)在的實(shí)現(xiàn)介紹在:本文頂部簡介茂嗓。
添加了設(shè)置動(dòng)畫展示時(shí)間的功能餐茵。
現(xiàn)在可以銷毀動(dòng)畫。

v1.1.1

進(jìn)行了大面積的更改述吸。
修改優(yōu)化了添加彈屏的模式忿族,并且可以添加自定義布局。
可以設(shè)置RecyclerView行數(shù),默認(rèn)為6行道批。

v1.0.0

第一版本错英,僅僅實(shí)現(xiàn)了發(fā)送彈幕的功能

License

Copyright 2016 xujiaji
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市屹徘,隨后出現(xiàn)的幾起案子走趋,更是在濱河造成了極大的恐慌,老刑警劉巖噪伊,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件簿煌,死亡現(xiàn)場離奇詭異,居然都是意外死亡鉴吹,警方通過查閱死者的電腦和手機(jī)姨伟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豆励,“玉大人夺荒,你說我怎么就攤上這事×颊簦” “怎么了技扼?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嫩痰。 經(jīng)常有香客問我剿吻,道長,這世上最難降的妖魔是什么串纺? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任丽旅,我火速辦了婚禮,結(jié)果婚禮上纺棺,老公的妹妹穿的比我還像新娘榄笙。我一直安慰自己,他們只是感情好祷蝌,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布茅撞。 她就那樣靜靜地躺著,像睡著了一般巨朦。 火紅的嫁衣襯著肌膚如雪米丘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天罪郊,我揣著相機(jī)與錄音,去河邊找鬼尚洽。 笑死悔橄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播癣疟,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼挣柬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睛挚?” 一聲冷哼從身側(cè)響起邪蛔,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扎狱,沒想到半個(gè)月后侧到,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淤击,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年匠抗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片污抬。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汞贸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出印机,到底是詐尸還是另有隱情矢腻,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布射赛,位于F島的核電站多柑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏咒劲。R本人自食惡果不足惜顷蟆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腐魂。 院中可真熱鬧帐偎,春花似錦、人聲如沸蛔屹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兔毒。三九已至漫贞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間育叁,已是汗流浹背迅脐。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留豪嗽,地道東北人谴蔑。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓豌骏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親隐锭。 傳聞我的和親對象是個(gè)殘疾皇子窃躲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容