软件编程
位置:首页>> 软件编程>> Android编程>> Android自定义控件实现底部菜单(下)

Android自定义控件实现底部菜单(下)

作者:landptf  发布时间:2023-03-28 15:35:38 

标签:Android,底部菜单

在app中经常会用到底部菜单的控件,每次都需要写好多代码,今天我们用到了前几篇博客里的控件来进一步封装底部菜单。先看效果图:

Android自定义控件实现底部菜单(下)

主要包括以下功能:
1 设置icon以及点击之后的icon
2 设置文字
3 设置文字颜色以及点击之后的文字颜色
4 设置未读数量、更多以及new

我们先看如何使用,然后再看如何实现的

1 在布局文件中引用MenuM


<com.landptf.view.MenuM
 android:id="@+id/mm_bottom"
 android:layout_width="match_parent"
 android:layout_height="56dp"
 android:layout_alignParentBottom="true"
 landptf:backColor="@color/content"
 landptf:textColor="@color/text"
 landptf:textColorPress="@color/colorPrimary"
 landptf:count="4"
 />

这里主要说一下count属性,表示菜单项的个数。

2 在Activity中初始化


final MenuM mmBottom = (MenuM) findViewById(R.id.mm_bottom);
mmBottom.setText(text);
mmBottom.setIconDrawable(iconDrawable);
mmBottom.setIconDrawablePress(iconDrawablePress);
//设置默认选中第一项
mmBottom.setPressState(0, MotionEvent.ACTION_DOWN);
mmBottom.setOnItemClickListener(new MenuM.OnItemClickListener() {
 @Override
 public void onItemClick(int position) {
   Toast.makeText(MenuMTestActivity.this, mmBottom.getText(position), Toast.LENGTH_SHORT).show();
 }
});

mmBottom.setUnReadCount(0, 100);
mmBottom.setUnReadCount(1, 15);
mmBottom.setVisibilityMore(2, View.VISIBLE);
mmBottom.setVisibilityNew(3, View.VISIBLE);

有以下几个全局变量


text = new String[]{"首页", "通讯录", "发现", "我"};
//为了演示方便我只找了两张icon,在实际开发中一般需要从网络上下载,然后在设置
Drawable drawable = getResources().getDrawable(R.drawable.icon_home_page);
Drawable drawablePress = getResources().getDrawable(R.drawable.icon_home_page_press);
iconDrawable = new Drawable[]{drawable, drawable, drawable, drawable};
iconDrawablePress = new Drawable[]{drawablePress, drawablePress, drawablePress, drawablePress};

来源:https://my.oschina.net/landptf/blog/825973

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com