Android仿微信長(zhǎng)按菜單效果
本文實(shí)例為大家分享了Android仿微信長(zhǎng)按菜單展示的具體代碼,供大家參考,具體內(nèi)容如下
FloatMenu
A menu style pop-up window that mimics WeChat。仿微信的長(zhǎng)按菜單。
效果如下

引入方法:
Github地址:https://github.com/JavaNoober/FloatMenu
dependencies {
....
compile 'com.noober.floatmenu:common:1.0.2'
}
使用說明
使用方法1:
Activity 重寫dispatchTouchEvent,并且新建一個(gè)Point對(duì)象,show的時(shí)候傳入改對(duì)象
private Point point = new Point();
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_DOWN){
point.x = (int) ev.getRawX();
point.y = (int) ev.getRawY();
}
return super.dispatchTouchEvent(ev);
}
調(diào)用:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FloatMenu floatMenu = new FloatMenu(MainActivity.this);
floatMenu.items("菜單1", "菜單2", "菜單3");
floatMenu.show(point);
}
});
使用方法2:
不需要重寫dispatchTouchEvent,但是需要在初始化的時(shí)候傳入所點(diǎn)擊的view,floatment初始化必須在點(diǎn)擊事件外部
final FloatMenu floatMenu = new FloatMenu(this, btn1);
floatMenu.items("菜單1", "菜單2", "菜單3");
floatMenu.setOnItemClickListener(new FloatMenu.OnItemClickListener() {
@Override
public void onClick(View v, int position) {
Toast.makeText(MainActivity.this, "菜單"+position, Toast.LENGTH_SHORT).show();
}
});
設(shè)置菜單的方式:
1.代碼設(shè)置
floatMenu.items("菜單1", "菜單2", "菜單3");
...
List<String> list = new ArrayList<>();
list.add("菜單1"); list.add("菜單2"); list.add("菜單3");
floatMenu.items(list);
2.menu.xml設(shè)置
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item app:menu_title="Send to Chat" app:icon = "@drawable/brush"></item>
<item
app:menu_title="Add to Favorites" app:icon = "@drawable/barrage"/>
<item
app:menu_title="Delete" app:icon = "@drawable/clock"/>
<item
app:menu_title="More" app:icon = "@drawable/collection"/>
</menu>
floatMenu.inflate(R.menu.popup_menu);
方法都提供參數(shù)設(shè)置菜單的寬度:
public void items(List<MenuItem> itemList, int itemWidth) public void items(int itemWidth, String... items) public void inflate(int menuRes, int itemWidth)
創(chuàng)建菜單:
注意點(diǎn):
顯示floatmenu有兩種方法:
floatmenu.show(point)與floatmenu.show()的區(qū)別
區(qū)別在于,創(chuàng)建floatmenu對(duì)象的位置,如果使用第2種方法,創(chuàng)建floatmenu必須在點(diǎn)擊事件的外面
第一種則沒有這種限制,如下所示:
final FloatMenu floatMenu = new FloatMenu(this, btn2);
floatMenu.inflate(R.menu.popup_menu);
floatMenu.setOnItemClickListener(new FloatMenu.OnItemClickListener() {
@Override
public void onClick(View v, int position) {
Toast.makeText(MainActivity.this, "菜單"+position, Toast.LENGTH_SHORT).show();
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FloatMenu floatMenu = new FloatMenu(MainActivity.this);
floatMenu.items("菜單1", "菜單2", "菜單3");
floatMenu.show(point);
}
});
new FloatMenu(this, view) 與 new FloatMenu(this)區(qū)別
使用第二種方法創(chuàng)建對(duì)象在,必須重寫dispatchTouchEvent
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android自定義PopWindow實(shí)現(xiàn)QQ、微信彈出菜單效果
- Android PopupWindow實(shí)現(xiàn)微信右上角的彈出菜單
- Android仿微信底部菜單欄效果
- Android制作微信app頂部menu菜單(ActionBar)
- Android中微信小程序開發(fā)之彈出菜單
- android自定義popupwindow仿微信右上角彈出菜單效果
- Android開發(fā)Popwindow仿微信右上角下拉菜單實(shí)例代碼
- Android開發(fā)之微信底部菜單欄實(shí)現(xiàn)的幾種方法匯總
- Android仿微信底部菜單欄功能顯示未讀消息數(shù)量
- Android仿微信滑動(dòng)彈出編輯、刪除菜單效果、增加下拉刷新功能
- Android仿微信加號(hào)菜單模式
相關(guān)文章
ViewPager+RadioGroup實(shí)現(xiàn)左右滑動(dòng)卡片布局
這篇文章主要為大家詳細(xì)介紹了ViewPager+RadioGroup實(shí)現(xiàn)左右滑動(dòng)卡片布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Android中執(zhí)行java命令的方法及java代碼執(zhí)行并解析shell命令
這篇文章給大家介紹Android中執(zhí)行java命令的方法及java代碼執(zhí)行并解析shell命令,需要的朋友一起學(xué)習(xí)2015-11-11
Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息
這篇文章主要介紹了Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息的相關(guān)資料,需要的朋友可以參考下2016-01-01
Android進(jìn)階CoordinatorLayout協(xié)調(diào)者布局實(shí)現(xiàn)吸頂效果
這篇文章主要為大家介紹了Android進(jìn)階CoordinatorLayout協(xié)調(diào)者布局實(shí)現(xiàn)吸頂效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Android Studio里如何使用lambda表達(dá)式
這篇文章主要介紹了Android Studio里如何使用lambda表達(dá)式,需要的朋友可以參考下2017-05-05
Android自定義WaveView實(shí)現(xiàn)波浪進(jìn)度效果
最近注意到百度外賣以及淘寶個(gè)人中心,都用到了類似水波起伏的效果,于是就參照網(wǎng)上的資料然后自己整改,自定義了一個(gè)waveView來實(shí)現(xiàn)這個(gè)效果,文中給出來詳細(xì)的實(shí)現(xiàn)原理及實(shí)例代碼,有需要的朋友們可以參考借鑒,下面來一起看看吧。2017-01-01
Android RelativeLayout相對(duì)布局屬性簡(jiǎn)析
在Android應(yīng)用開發(fā)過程中,為了界面的美觀考慮,經(jīng)常會(huì)使用到布局方面的屬性,本文就以此問題深入解析,詳解一下Android RelativeLayout相對(duì)布局屬性在實(shí)際開發(fā)中的應(yīng)用,需要的朋友可以參考下2012-11-11
Android ExpandableListView雙層嵌套實(shí)現(xiàn)三級(jí)樹形菜單
這篇文章主要介紹了Android ExpandableListView雙層嵌套實(shí)現(xiàn)三級(jí)樹形菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
Android 自定義通用的loadingview實(shí)現(xiàn)代碼
本篇文章主要介紹了Android 自定義通用的loadingview實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01

