Android實(shí)現(xiàn)360手機(jī)助手底部的動畫菜單
首先來看下我們實(shí)現(xiàn)的效果和360效果的對比:
360手機(jī)助手效果演示
本庫實(shí)現(xiàn)的效果(Icon來自360手機(jī)助手,侵刪)
xml布局文件
注:為了美觀,講每個(gè)Button的高度以及固定,設(shè)置wrap_content時(shí)候是最大高度,為50dp,如果需要設(shè)置特定高度請參見下文的方法表格
<com.brioal.bottomtab.view.BottomLayout android:id="@+id/main_tab" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> </com.brioal.bottomtab.view.BottomLayout>
數(shù)據(jù)源添加與基本設(shè)置
mList = new ArrayList<>(); mList.add(new TabEntity(R.mipmap.icon_1, "推薦")); mList.add(new TabEntity(R.mipmap.icon_2, "游戲")); mList.add(new TabEntity(R.mipmap.icon_3, "軟件")); mList.add(new TabEntity(R.mipmap.icon_4, "應(yīng)用圈")); mList.add(new TabEntity(R.mipmap.icon_5, "管理")); mBottomLayout.setList(mList); //設(shè)置數(shù)據(jù)源 mBottomLayout.setNews(1, 0); //設(shè)置未讀消息 mBottomLayout.setNews(2, 1); mBottomLayout.setNews(3, 2); mBottomLayout.setNews(4, 3); mBottomLayout.setNews(5, 4); //設(shè)置Item點(diǎn)擊事件 mBottomLayout.setSelectedListener(new OnTabSelectedListener() { @Override public void onSelected(int position) { mBottomLayout.cleanNews(position); //清除未讀消息 if (mToast == null) { mToast = Toast.makeText(MainActivity.this, position + "", Toast.LENGTH_SHORT); } else { mToast.setText(position + ""); } mToast.show(); } });
這樣設(shè)置之后的效果如示例圖所以,已經(jīng)可以基本使用,本庫還提供其他自定義效果,如下:
xml屬性 | Java方法 | 功能 |
colorNormal | colorNormal void setColorNormal(int colorNormal) | 設(shè)置未選中的時(shí)候Icon和文字的顏色 |
colorSelected | setColorSelect(int colorSelect) | 設(shè)置選中的時(shí)候Icon和文字的顏色 |
textSize | setTextSize(int textSize) | 設(shè)置字體的大小 |
exCircleColor | setExCircleColor(int exCircleColor) | 設(shè)置外圓顏色 |
inCircleColor | setInCircleColor(int inCircleColor) | 設(shè)置內(nèi)圓顏色 |
animDuration | setDuration(int duration) | 設(shè)置點(diǎn)擊漣漪的動畫時(shí)長 |
無 | void setList(List<TabEntity> list) | 設(shè)置數(shù)據(jù)源,格式為資源文件,菜單名稱 |
無 | void setMenuHeight(int height) | 設(shè)置菜單高度,默認(rèn)為50dp,適宜高度 |
無 | void setCurrentIndex(int currentIndex) | 設(shè)置選中的Tab按鈕下表 |
無 | setSelectedListener(OnTabSelectedListener selectedListener) | 設(shè)置Item點(diǎn)擊事件 |
無 | setNews(int newSum, int index) | 設(shè)置指定Item的未讀消息數(shù)量 |
無 | cleanNews(int index) | 清除指定Item的未讀消息 |
在項(xiàng)目中添加此組件的方式:
Step 1. 項(xiàng)目的build.gradle文件做如下修改
allprojects { repositories { ... maven { url "https://jitpack.io" } } }
Step 2. 添加依賴
dependencies { compile 'com.github.Brioal:BottomTabLayout:1.1' }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望能對各位Android開發(fā)者們有所幫助,如果有疑問大家可以留言交流。
- Android編程實(shí)現(xiàn)仿優(yōu)酷圓盤旋轉(zhuǎn)菜單效果的方法詳解【附demo源碼下載】
- Android自定義控件之仿優(yōu)酷菜單
- Android仿優(yōu)酷圓形菜單學(xué)習(xí)筆記分享
- Android編程實(shí)現(xiàn)仿優(yōu)酷旋轉(zhuǎn)菜單效果(附demo源碼)
- Android 帶有彈出收縮動畫的扇形菜單實(shí)例
- Android菜單(動畫菜單、360波紋菜單)
- Android程序開發(fā)之使用Design包實(shí)現(xiàn)QQ動畫側(cè)滑效果和滑動菜單導(dǎo)航
- Android利用屬性動畫實(shí)現(xiàn)優(yōu)酷菜單
相關(guān)文章
Android開發(fā)自學(xué)筆記(二):工程文件剖析
這篇文章主要介紹了Android開發(fā)自學(xué)筆記(二):工程文件剖析,本文講解了AndroidManifest.xml、src文件夾、res文件夾等文件的作用,需要的朋友可以參考下2015-04-04android編程實(shí)現(xiàn)sd卡讀取數(shù)據(jù)庫的方法
這篇文章主要介紹了android編程實(shí)現(xiàn)sd卡讀取數(shù)據(jù)庫的方法,涉及Android權(quán)限控制及針對sd卡與數(shù)據(jù)庫的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android Bitmap的加載優(yōu)化與Cache相關(guān)介紹
這篇文章主要介紹了Android中性能優(yōu)化之Bitmap的加載優(yōu)化與Cache相關(guān)內(nèi)容介紹,文中介紹的很詳細(xì),對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-02-02實(shí)例講解Android App使用自帶的SQLite數(shù)據(jù)庫的基本方法
這篇文章主要介紹了Android App使用自帶的SQLite數(shù)據(jù)庫的基本方法,SQLite是一個(gè)小巧的內(nèi)嵌型數(shù)據(jù)庫,在數(shù)據(jù)庫需求不大的情況下使用SQLite其實(shí)非常有效,需要的朋友可以參考下2016-04-04Android編程開發(fā)之RadioGroup用法實(shí)例
這篇文章主要介紹了Android編程開發(fā)之RadioGroup用法,結(jié)合實(shí)例形式分析了Android中RadioGroup單選按鈕的具體使用技巧,需要的朋友可以參考下2015-12-12Flutter如何完成路由攔截,實(shí)現(xiàn)權(quán)限管理
本篇介紹了利用 Fluro 路由管理實(shí)現(xiàn)路由權(quán)限攔截的兩種方式,兩種方式各有好處,使用過程中可以根據(jù)實(shí)際情況決定使用哪一種方法。2021-06-06