Android自定义底部菜单栏控件

在App开发时经常会遇到需要做类似微信底部切换按钮那样的菜单栏,所以封装了一个底部菜单控件,方便日后使用。
先看一下demo效果

Android自定义底部菜单栏控件插图

先看如何进行使用,在看如何实现。
1、在activity_main.xml布局里引用控件

Android自定义底部菜单栏控件插图1

2、在activity进行设置数据

public class MainActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomMenuView bmv_list = (BottomMenuView) findViewById(R.id.bmv_list);
        //设置bottom数据
        bmv_list.setBottomItem(getData());
        //监听点击事件
        bmv_list.setBottomItemOnClickListener(new BottomMenuView.BottomItemOnClickListener() {
            @Override
            public void bottomItemOnClick(View view, int i, BottomItem item) {
                Toast.makeText(getApplicationContext(),"点击了第"+i+"个",Toast.LENGTH_SHORT).show();
            }
        });
        //默认选择第几个
        bmv_list.setShowIndex(0);
    }
    /**
     * 创建bottom数据
     * @return
     */
    public List getData(){
        List items = new ArrayList();
        items.add(new BottomItem("首页",R.mipmap.icon_function_tab));
        items.add(new BottomItem("信息",R.mipmap.icon_home_tab));
        items.add(new BottomItem("应用",R.mipmap.icon_my_tab));
        items.add(new BottomItem("我的",R.mipmap.icon_home_tab));
        return items;
    }
}

Bottomitem的代码

public class BottomItem {
    private String name;
    private int icon;
    public BottomItem(String name, int icon) {
        this.name = name;
        this.icon = icon;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public int getIcon() {
        return icon;
    }

    public void setIcon(int icon) {
        this.icon = icon;
    }
}

是不是很方便呢!

现在来BottomMenuView看看是怎么实现的

public class BottomMenuView extends LinearLayout implements View.OnClickListener{
    private static final String TAG = "BottomMenuView";
    private Context mContext;
    private int imgColor = 0xff009AFF;//点击改变图片颜色
    private int imgDefaultColor = 0xff565656;//默认图片颜色
    private float textSize = 12; //字体大小
    private int imgPadding = 12; //内边距
    private List bottomItems;//Item列表
    private List

代码比较简单,相信大家看一遍都可以理解。
全部代码已托管到开源中国的码云和GitHub上,欢迎下载。
地址:
https://github.com/yancy2430/BottomNavView
https://git.oschina.net/zhe2430/BottomNavView
也可以直接Gradle引用

compile ‘com.tdeado:bottomnav:1.0.0’

    © 版权声明
    THE END
    喜欢就支持一下吧♡
    点赞0赞赏
    分享
    评论 抢沙发