Android實現(xiàn)360手機助手底部的動畫菜單
首先來看下我們實現(xiàn)的效果和360效果的對比:
360手機助手效果演示

本庫實現(xiàn)的效果(Icon來自360手機助手,侵刪)

xml布局文件
注:為了美觀,講每個Button的高度以及固定,設(shè)置wrap_content時候是最大高度,為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點擊事件
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è)置未選中的時候Icon和文字的顏色 |
| colorSelected | setColorSelect(int colorSelect) | 設(shè)置選中的時候Icon和文字的顏色 |
| textSize | setTextSize(int textSize) | 設(shè)置字體的大小 |
| exCircleColor | setExCircleColor(int exCircleColor) | 設(shè)置外圓顏色 |
| inCircleColor | setInCircleColor(int inCircleColor) | 設(shè)置內(nèi)圓顏色 |
| animDuration | setDuration(int duration) | 設(shè)置點擊漣漪的動畫時長 |
| 無 | void setList(List<TabEntity> list) | 設(shè)置數(shù)據(jù)源,格式為資源文件,菜單名稱 |
| 無 | void setMenuHeight(int height) | 設(shè)置菜單高度,默認為50dp,適宜高度 |
| 無 | void setCurrentIndex(int currentIndex) | 設(shè)置選中的Tab按鈕下表 |
| 無 | setSelectedListener(OnTabSelectedListener selectedListener) | 設(shè)置Item點擊事件 |
| 無 | setNews(int newSum, int index) | 設(shè)置指定Item的未讀消息數(shù)量 |
| 無 | cleanNews(int index) | 清除指定Item的未讀消息 |
在項目中添加此組件的方式:
Step 1. 項目的build.gradle文件做如下修改
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. 添加依賴
dependencies {
compile 'com.github.Brioal:BottomTabLayout:1.1'
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望能對各位Android開發(fā)者們有所幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Android開發(fā)中日期工具類DateUtil完整實例
這篇文章主要介紹了Android開發(fā)中日期工具類DateUtil,結(jié)合完整實例形式分析了Android針對日期與時間的計算、轉(zhuǎn)換、格式化、獲取等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Android實現(xiàn)ViewFlipper圖片動畫滑動
這篇文章主要為大家詳細介紹了Android實現(xiàn)ViewFlipper圖片動畫滑動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
Android開發(fā)之關(guān)閉和打開Speaker(揚聲器)的方法
這篇文章主要介紹了Android開發(fā)之關(guān)閉和打開Speaker(揚聲器)的方法,結(jié)合實例形式簡單分析了Android揚聲器的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-03-03
將cantk runtime嵌入到現(xiàn)有的APP中的方法
今天小編就為大家分享一篇關(guān)于將cantk runtime嵌入到現(xiàn)有的APP中的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12

