Android自定義動(dòng)畫(huà)之廣告牌翻動(dòng)效果

懶得寫(xiě)多少?zèng)]用的,直接把README貼上來(lái)得了绳瘟。
這是源碼github地址

若你對(duì)代碼實(shí)現(xiàn)有啥疑惑歡迎前來(lái)咨詢纯路。

Billboard

Transition the views as billboard.



See it on Youtube

How to include

dependencies {
    compile 'com.zql.android:billboard:1.1'
}

Usage

1. write the code in layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.zql.android.bambooslipdemo.MainActivity">

    <com.zql.android.bambooslip.Billboard
        android:id="@+id/billboard"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:billboard_columns="40"
        app:billboard_rows="1"
        app:billboard_delay="120"
        app:billboard_duration="1200"
        app:billboard_refresh="500"
        app:billboard_orientation="horizontal"
        android:background="@android:color/black"/>

</RelativeLayout>

2. start Billboard

billboard = (Billboard) findViewById(R.id.billboard);
billboard.setCallback(new Billboard.BillboardCallback() {
    @Override
    public Bitmap getBitmap(int count) {
        if(count%5 == 0){
            return BitmapFactory.decodeResource(getResources(),R.mipmap.b1);
        }
        if(count%5 == 1){
            return BitmapFactory.decodeResource(getResources(),R.mipmap.b2);
        }
        if(count%5== 2){
            return BitmapFactory.decodeResource(getResources(),R.mipmap.b3);
        }
        if(count%5 == 3){
            return BitmapFactory.decodeResource(getResources(),R.mipmap.b4);
        }
        if(count%5 == 4){
            return BitmapFactory.decodeResource(getResources(),R.mipmap.b5);
        }
        return null;
    }
    @Override
    public long getDelayFactor(int index, int slipSize,long delay) {
        return index * delay;
    }
});
billboard.go();

api

xml

property format default value meaning
billboard_columns integer 10 count that billborad will be cut in horizontal
billboard_rows integer 1 count that billborad will be cut in vertical
billboard_duration integer 1000 animation duration of one slip
billboard_delay integer 300 the time delay of next slip do it animatin
billboard_refresh integer 3000 time of two image transition
billboard_orientation string horizontal orientation of slip's animatin

java

    /**
     * set the callback
     * @param callback {@link BillboardCallback}
     */
    Billboard.setCallback(BillboardCallback callback)

    /**
     * {@link Billboard}'s callback
     */
    public interface BillboardCallback {
        /**
         * get a bitmap to show
         * @param count {0,1,2,3,4,5,6,7,8, ... ,Integer.MAX_VALUE}
         * @return
         */
        Bitmap getBitmap(int count);
    /**
         * custom the delay time of every slip
         * @param index slip index
         * @param delay the time you define in layout xml
         * @param slipSize the size of slip
         * @return delayfactor
         */
        long getDelayFactor(int index,int slipSize,long delay);
    }

    /**
     * start flip
     */
    Billboard.go()

    /**
     * end flip
     */
    Billboard.endFlip()

    /**
     * set timeInterpolator of flip animation
     * @param timeInterpolator
     */
    Billboard.setTimeInterpolator(TimeInterpolator timeInterpolator)

version 1.1

Add a method in BillboardCallback to custom the flip order.

/**
 * custom the delay time of every slip
* @param index slip index
* @param delay the time you define in layout xml
* @param slipSize the size of slip
* @return delayfactor
*/
long getDelayFactor(int index,int slipSize,long delay);

for example:

index * delay make the order from left to right.

@Override
public long getDelayFactor(int index, int slipSize,long delay) {
    return index * delay;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筛谚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苛坚,更是在濱河造成了極大的恐慌,老刑警劉巖色难,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泼舱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡枷莉,警方通過(guò)查閱死者的電腦和手機(jī)娇昙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)笤妙,“玉大人冒掌,你說(shuō)我怎么就攤上這事噪裕。” “怎么了股毫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵膳音,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我皇拣,道長(zhǎng)严蓖,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任氧急,我火速辦了婚禮颗胡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吩坝。我一直安慰自己毒姨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布钉寝。 她就那樣靜靜地躺著弧呐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嵌纲。 梳的紋絲不亂的頭發(fā)上俘枫,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音逮走,去河邊找鬼鸠蚪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛师溅,可吹牛的內(nèi)容都是我干的茅信。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼墓臭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蘸鲸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起窿锉,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤酌摇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后榆综,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體妙痹,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鼻疮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怯伊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖耿芹,靈堂內(nèi)的尸體忽然破棺而出崭篡,到底是詐尸還是另有隱情,我是刑警寧澤吧秕,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布琉闪,位于F島的核電站,受9級(jí)特大地震影響砸彬,放射性物質(zhì)發(fā)生泄漏颠毙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一砂碉、第九天 我趴在偏房一處隱蔽的房頂上張望蛀蜜。 院中可真熱鬧,春花似錦增蹭、人聲如沸滴某。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至梢灭,卻和暖如春饼灿,著一層夾襖步出監(jiān)牢的瞬間幕侠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工碍彭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留橙依,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓硕旗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親女责。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漆枚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,505評(píng)論 0 23
  • 文/鴻運(yùn) 裊裊炊煙抹過(guò)窗 文墨拙筆淡淡香 瑟瑟楓紅銷魂處 一簾秋思雁聲長(zhǎng)
    HONGYUNDANGTOU閱讀 445評(píng)論 5 12
  • 《同讀一本書(shū)》2016-9-7-105 正文: 目標(biāo)是重要的。而實(shí)現(xiàn)目標(biāo)的方法也同樣重要抵知。這聽(tīng)上去非常簡(jiǎn)單墙基,可正像...
  • 在某個(gè)日落的黃昏下 站在家里的陽(yáng)臺(tái)上 我偶爾還會(huì)看見(jiàn)那么一幅畫(huà)面 有幾頭老牛從冬茅草里 搖搖擺擺鉆了出來(lái) 老人走得...
    逗霸君閱讀 605評(píng)論 7 11
  • 高三補(bǔ)習(xí)班的日子真的很枯燥,每天除了上課就是有一大堆作業(yè)要做刷喜,除了考試就是考試残制,每天都在緊張忙碌中度過(guò),班里從第一...
    妮詩(shī)蘭閱讀 193評(píng)論 0 0