Android 兩種自定義的Menu

2021-05-27 13:09:13 字數 1329 閱讀 7686

雖然兩種方法有很多相似的地方,但是使用的方法不同,廢話不多說,帖方法了

方法一功能簡述

要實現能代替系統選單的自定義選單必須保證以下基本功能的實現:

能通過menu鍵隱藏顯示選單(截獲系統menu鍵動態隱藏顯示)

當獲得焦點時高亮顯示獲得焦點的選單項

實現按下選單狀態效果

能設定選單背景

能設定選單項背景

能設定選單項圖示(icon)

最後當然是最主要的事件處理

詳細實現

1).定義選單布局檔案

1).首先定義advancedbutton.xml,來實現選單項焦點獲得高亮顯示、按下的效果

2).實現選單布局檔案

3).定義靜態方法——用於隱藏/顯示傳過來的選單

public static void setmenuevent(linearlayout layout) else

}4).過載activity類的onkeyup()或onkeydown按鍵事件監聽menu鍵實現選單的隱藏/顯示

@override

public boolean onkeyup(int keycode, keyevent event) else

//        }

//        isshowmenu = !isshowmenu;

return super.onkeyup(keycode, event);

}然後獲取layout裡的button(選單項)新增事件監聽,實現選單項事件處理。

至此以上提出的選單最基本的7要素便已完成。

下篇文章我將在這基礎上修改完善,使它能實現動態選單項的新增刪除。

方法二首先,寫出自己menu的layout:

<?xml version="1.0" encoding="utf-8"?>

其中android:drawabletop的值是自己定義的乙個selector,這個就自己看著辦了,很簡單。

然後要定義乙個類,繼承自linearlayout:

public class mylinearlayout extends linearlayout

public mylinearlayout(context context, attributeset attrs)

private void setview() else

}重寫乙個方法:

@override

public boolean onkeyup(int keycode, keyevent event)

return super.onkeyup(keycode, event);

}ok了,現在build project就可以執行了。

自定義dialog的兩種方式

介紹自定義對話方塊 dialog 的兩種方式 方式一 首先自定義乙個自己想要設計的對話方塊的介面布局,我的是這樣的 然後在activity類中進行展示,這裡我寫了乙個showinputpwddialog方法 輸入密碼對話方塊 private void showinputpwddialog 方式二 可...

自定義異常的兩種方式

自定義異常的兩種方式 一 丟擲異常 def greet name,city if notisinstance name,str raise typeerror name must be str if notisinstance city,str raise typeerror age must be...

自定義View的兩種方式

一 xib自定義view 1.思路 2.關鍵 1 import23 class45 inte ce67 8 模型資料9 1113 14 15 通過模型資料來建立乙個view 16 1819 end 1 import 2 import 34 inte ce 5 property weak,nonato...