Android开源库-仿360手机助手底部动画菜单布局
r569594043
8年前
<h2>仿360手机助手底部动画菜单布局</h2> <h2>效果对比:</h2> <table> <thead> <tr> <th>360手机助手效果演示:</th> <th>本库实现的效果(Icon来自360手机助手,侵删)</th> </tr> </thead> <tbody> <tr> <td><img src="https://simg.open-open.com/show/30cba866f49061e9a885db10ef75f817.gif"> <p> 这里写图片描述</p> </td> <td><img src="https://simg.open-open.com/show/9586dab2e0db167008423d793e60761b.gif"> <p> 这里写图片描述</p> </td> </tr> </tbody> </table> <h2><strong>xml布局文件</strong></h2> <p>注:为了美观,讲每个Button的高度以及固定,设置wrap_content时候是最大高度,为50dp,如果需要设置特定高度请参见下文的方法表格</p> <pre> <code class="language-java"><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></code></pre> <h2><strong>数据源添加与基本设置</strong></h2> <pre> <code class="language-java">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, "应用圈")); mList.add(new TabEntity(R.mipmap.icon_5, "管理")); mBottomLayout.setList(mList); //设置数据源 mBottomLayout.setNews(1, 0); //设置未读消息 mBottomLayout.setNews(2, 1); mBottomLayout.setNews(3, 2); mBottomLayout.setNews(4, 3); mBottomLayout.setNews(5, 4); //设置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(); } });</code></pre> <h2><strong>这样设置之后的效果如示例图所以,已经可以基本使用,本库还提供其他自定义效果,如下:</strong></h2> <table> <thead> <tr> <th>xml属性</th> <th>Java方法</th> <th>功能</th> </tr> </thead> <tbody> <tr> <td>colorNormal</td> <td>void setColorNormal(int colorNormal)</td> <td>设置未选中的时候Icon和文字的颜色</td> </tr> <tr> <td>colorSelected</td> <td>setColorSelect(int colorSelect)</td> <td>设置选中的时候Icon和文字的颜色</td> </tr> <tr> <td>textSize</td> <td>setTextSize(int textSize)</td> <td>设置字体的大小</td> </tr> <tr> <td>exCircleColor</td> <td>setExCircleColor(int exCircleColor)</td> <td>设置外圆颜色</td> </tr> <tr> <td>inCircleColor</td> <td>setInCircleColor(int inCircleColor)</td> <td>设置内圆颜色</td> </tr> <tr> <td>animDuration</td> <td>setDuration(int duration)</td> <td>设置点击涟漪的动画时长</td> </tr> <tr> <td>无</td> <td>void setList(List<TabEntity> list)</td> <td>设置数据源,格式为资源文件,菜单名称</td> </tr> <tr> <td>无</td> <td>void setMenuHeight(int height)</td> <td>设置菜单高度,默认为50dp,适宜高度</td> </tr> <tr> <td>无</td> <td>void setCurrentIndex(int currentIndex)</td> <td>设置选中的Tab按钮下表</td> </tr> <tr> <td>无</td> <td>setSelectedListener(OnTabSelectedListener selectedListener)</td> <td>设置Item点击事件</td> </tr> <tr> <td>无</td> <td>setNews(int newSum, int index)</td> <td>设置指定Item的未读消息数量</td> </tr> <tr> <td>无</td> <td>cleanNews(int index)</td> <td>清除指定Item的未读消息</td> </tr> </tbody> </table> <h2><strong>在项目中添加此组件的方式:</strong></h2> <h2><strong>Step 1. 项目的build.gradle文件做如下修改</strong></h2> <pre> <code class="language-java">allprojects { repositories { ... maven { url "https://jitpack.io" } } }</code></pre> <h2><strong>Step 2. 添加依赖</strong></h2> <pre> <code class="language-java">dependencies { compile 'com.github.Brioal:BottomTabLayout:1.1' }</code></pre> <p> </p> <p> </p> <p>来自:http://www.jianshu.com/p/b3d86c96fa35</p> <p> </p>