Android仿微信長按菜單效果
本文實(shí)例為大家分享了Android仿微信長按菜單展示的具體代碼,供大家參考,具體內(nèi)容如下
FloatMenu
A menu style pop-up window that mimics WeChat。仿微信的長按菜單。
效果如下
引入方法:
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
以上就是本文的全部內(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-02Android中執(zhí)行java命令的方法及java代碼執(zhí)行并解析shell命令
這篇文章給大家介紹Android中執(zhí)行java命令的方法及java代碼執(zhí)行并解析shell命令,需要的朋友一起學(xué)習(xí)2015-11-11Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息
這篇文章主要介紹了Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息的相關(guān)資料,需要的朋友可以參考下2016-01-01Android進(jìn)階CoordinatorLayout協(xié)調(diào)者布局實(shí)現(xiàn)吸頂效果
這篇文章主要為大家介紹了Android進(jìn)階CoordinatorLayout協(xié)調(diào)者布局實(shí)現(xiàn)吸頂效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android Studio里如何使用lambda表達(dá)式
這篇文章主要介紹了Android Studio里如何使用lambda表達(dá)式,需要的朋友可以參考下2017-05-05Android自定義WaveView實(shí)現(xiàn)波浪進(jìn)度效果
最近注意到百度外賣以及淘寶個(gè)人中心,都用到了類似水波起伏的效果,于是就參照網(wǎng)上的資料然后自己整改,自定義了一個(gè)waveView來實(shí)現(xiàn)這個(gè)效果,文中給出來詳細(xì)的實(shí)現(xiàn)原理及實(shí)例代碼,有需要的朋友們可以參考借鑒,下面來一起看看吧。2017-01-01Android RelativeLayout相對(duì)布局屬性簡析
在Android應(yīng)用開發(fā)過程中,為了界面的美觀考慮,經(jīng)常會(huì)使用到布局方面的屬性,本文就以此問題深入解析,詳解一下Android RelativeLayout相對(duì)布局屬性在實(shí)際開發(fā)中的應(yīng)用,需要的朋友可以參考下2012-11-11Android ExpandableListView雙層嵌套實(shí)現(xiàn)三級(jí)樹形菜單
這篇文章主要介紹了Android ExpandableListView雙層嵌套實(shí)現(xiàn)三級(jí)樹形菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11Android 自定義通用的loadingview實(shí)現(xiàn)代碼
本篇文章主要介紹了Android 自定義通用的loadingview實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01