版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
菜單(Menu)北京電子科技職業(yè)學(xué)院目錄1.認(rèn)識(shí)菜單2.常用菜單3.實(shí)例演示1.認(rèn)識(shí)菜單
手機(jī)和電腦不同,它的屏幕空間非常有限,因此充分地利用屏幕空間在手機(jī)界面設(shè)計(jì)中就顯得非常重要。如果你的活動(dòng)中有大量的菜單需要顯示,這個(gè)時(shí)候界面設(shè)計(jì)就會(huì)比較尷尬,因?yàn)閮H這些菜單就可能占用屏幕將近三分之一的空間,為此Android給我們提供了一種方式,可以讓菜單都能得到展示的同時(shí),還能不占用任何屏幕空間。
2.
常用菜單1.選項(xiàng)菜單(OptionMenu)OptionMenu:選項(xiàng)菜單,android中最常見(jiàn)的菜單,在右上角以三點(diǎn)顯示也可以通過(guò)Menu鍵來(lái)調(diào)用而菜單的XML資源文件,需要?jiǎng)?chuàng)建在/res/menu/目錄下,并且包含一下幾個(gè)元素:<menu>:定義一個(gè)Menu,是一個(gè)菜單資源文件的根節(jié)點(diǎn),里面可以包含一個(gè)或者多個(gè)<item>和<group>元素。<item>:創(chuàng)建一個(gè)MenuItem,代表了菜單中一個(gè)選項(xiàng)。<group>:對(duì)菜單項(xiàng)進(jìn)行分組,可以以組的形式操作菜單項(xiàng)。<item>元素除了常規(guī)的id、icon、title屬性的支持,還有一個(gè)重要的屬性:android:showAsAction,這個(gè)屬性是起兼容性的,描述了在Android的高版本中,菜單項(xiàng)何時(shí)以何種方式加入到ActionBar中。2.常用屬性還可以通過(guò)android:icon=“@drawable/search”屬性添加上圖標(biāo),效果如圖二所示:如果想讓MenuItem變成ActionBar的形式,可以修改res/menu/main.xml中的android:showAsAction屬性,它的屬性值一共有下面幾種:ifRoom表示:如果有空間,就顯示出來(lái)。withText表示:只顯示文本(在配了圖標(biāo)的情況下)。如果這里我將屬性設(shè)置為always,效果如圖一所示:(圖一)(圖二)(注意:直接寫(xiě)android:showAsAction=“always”是無(wú)效的,需要添加xmlns:app=/apk/res-auto然后改為app:showAsAction=“always”)2.常用屬性2.子菜單(SubMenu)android中點(diǎn)擊子菜單將彈出一個(gè)顯示子菜單項(xiàng)的懸浮框,子菜單不支持嵌套,即不能包括其他子菜單,所謂的子菜單只是在<item>中又嵌套了一層<menu>。2.常用屬性ContextMenu:上下文菜單,通過(guò)長(zhǎng)按某個(gè)視圖組件后出現(xiàn)的菜單,該組件需注冊(cè)上下文菜單。
ContextMenu使用的流程如下:Step1:重寫(xiě)onCreateContextMenu()方法Step2:為view組件注冊(cè)上下文菜單,使用registerForContextMenu()方法,參數(shù)是ViewStep3:重寫(xiě)onContextItemSelected()方法為菜單項(xiàng)指定事件監(jiān)聽(tīng)器3.上下文菜單(ContextMenu)2.常用屬性4.彈出菜單(PopupMenu)一個(gè)類(lèi)似于PopupWindow(彈出窗口)的控件,他可以很方便的在指定View下顯示一個(gè)彈出菜單,而且他的菜單選項(xiàng)可以來(lái)自于Menu資源。3.實(shí)例演示1.四種菜單的簡(jiǎn)單應(yīng)用。步驟1.首先完成activity_main布局如下所示:代碼如下:<LinearLayout
xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="HelloWorld!"/>
<TextView
android:id="@+id/tv_context"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="30sp"
android:text="HelloWorld!"/>
<Button
android:id="@+id/btn_pop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="彈出菜單"
android:layout_gravity="center_horizontal"
android:layout_marginTop="300dp"/>
</LinearLayout>
3.實(shí)例演示步驟2.完成main的菜單文件,在res目錄下新建一個(gè)menu文件夾,右擊res目錄—〉New—〉Directory,輸入文件名menu,點(diǎn)擊OK。接著在這個(gè)文件夾下再新建一個(gè)名叫main的菜單文件main.xml。此布局代碼包含了選項(xiàng)菜單和子菜單。如下所示,同樣地完成布局代碼main.xml、menu_context.xml、menu_pop.xml。代碼:<menuxmlns:android="/apk/res/android"
xmlns:app="/apk/res-auto">
<item
android:id="@+id/Search_item"
android:icon="@drawable/search"
app:showAsAction="always"
android:title="搜索"/>
<item
android:id="@+id/setting"
android:title="設(shè)置文字顏色">
<!--子菜單-->
<menu><item
android:id="@+id/RED"
android:orderInCategory="300"
app:showAsAction="never"android:title="設(shè)文字為紅色"/><item
android:id="@+id/GREEN"
android:orderInCategory="400"
app:showAsAction="never"
android:title="設(shè)文字為綠色"/>
<item
android:id="@+id/BLUE"
android:orderInCategory="400"
app:showAsAction="never"
android:title="設(shè)文字為藍(lán)色"/>
</menu>
</item>
</menu>3.實(shí)例演示步驟3.接著我們完成MainActivity的JAVA文件。我們一個(gè)一個(gè)地實(shí)現(xiàn)每個(gè)菜單的功能,如下所示
1.首先完成選項(xiàng)菜單和子菜單的主要代碼。
publicclassMainActivityextendsAppCompatActivity{//定義不同顏色的菜單項(xiàng)的標(biāo)識(shí):
finalprivateintRED=110;
finalprivateintGREEN=111;
finalprivateintBLUE=112;
privateTextViewtv_text;@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text=(TextView)findViewById(R.id.tv_text);
}
Toast.LENGTH_SHORT).show();
break;
caseR.id.GREEN:
tv_text.setTextColor(Color.GREEN);
Toast.makeText(this,"文字變綠",Toast.LENGTH_SHORT).show();
break;caseR.id.BLUE:
tv_text.setTextColor(Color.BLUE);
Toast.makeText(this,"文字變藍(lán)",Toast.LENGTH_SHORT).show();
break;
caseR.id.Search_item:
Toast.makeText(this,"搜索",Toast.LENGTH_SHORT).show();
break;
}
returnsuper.onOptionsItemSelected(item);
}
}@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
//Handleactionbaritemclickshere.Theactionbarwill
//automaticallyhandleclicksontheHome/Upbutton,solong
//asyouspecifyaparentactivityinAndroidManifest.xml.
switch(item.getItemId()){
caseR.id.RED:tv_text.setTextColor(Color.RED);
Toast.makeText(this,"文字變紅",
3.實(shí)例演示步驟4.接著我們完成MainActivity的JAVA文件。我們一個(gè)一個(gè)地實(shí)現(xiàn)每個(gè)菜單的功能,如下所示
privateTextViewtv_context;tv_context=(TextView)findViewById(R.id.tv_context);registerForContextMenu(tv_context);@Override
//重寫(xiě)上下文菜單的創(chuàng)建方法
publicvoidonCreateContextMenu(ContextMenumenu,Viewv,
ContextMenu.ContextMenuInfomenuInfo){
MenuInflaterinflator=newMenuInflater(this);
inflator.inflate(R.menu.menu_context,menu);
super.onCreateContextMenu(menu,v,menuInfo);
}caseR.id.red:
Toast.makeText(this,"全選",Toast.LENGTH_SHORT).show();
break;
caseR.id.green:
Toast.makeText(this,"復(fù)制",Toast.LENGTH_SHORT).show();
break;
caseR.id.blue:
Toast.makeText(this,"粘貼",Toast.LENGTH_SHORT).show();
break;2.上下文菜單的主要代碼。3.實(shí)例演示步驟5.接著我們完成MainActivity的JAVA文件。我們一個(gè)一個(gè)地實(shí)現(xiàn)每個(gè)菜單的功能,如下所示
1.最后彈出菜單的主要代碼。privateButtonbtn_pop;
btn_pop=(Button)findViewById(R.id.btn_pop);
btn_pop.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
PopupMenupopup=newPopupMenu(MainActivity.this,btn_pop);
popup.getMenuInflater().inflate(R.menu.menu_pop,popup.getMenu());
popup.setOnMenuItemClickListener(newPopupMenu.OnMenuItemClickListener(){
@Override
publicbooleanonMenuItemClick(MenuItemitem){
switch(item.getItemId())
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版水利工程勘察設(shè)計(jì)合同熱3篇
- 物流行業(yè)安全防護(hù)規(guī)則
- 公園戶(hù)外攀巖墻施工協(xié)議
- 物業(yè)服務(wù)合同書(shū)范本
- 教育培訓(xùn)行業(yè)投資操作手冊(cè)
- 醫(yī)療行業(yè)財(cái)務(wù)收支管理規(guī)程
- 外包售后服務(wù)協(xié)議書(shū)
- 森林防火攪拌站招標(biāo)文件
- 展覽館玻璃膜施工合同
- 地鐵站彩鋼板維修合同
- 倫理學(xué)全套課件
- Zippo-2024年美版年冊(cè)集合
- 重大隱患判定標(biāo)準(zhǔn)培訓(xùn)課件
- 畫(huà)法幾何及機(jī)械制圖課件
- 新產(chǎn)品、新技術(shù)、新工藝、新材料的應(yīng)用
- 棋牌游戲自審自查報(bào)告
- JJF 2088-2023大型蒸汽滅菌器溫度、壓力、時(shí)間參數(shù)校準(zhǔn)規(guī)范
- 電磁彈射技術(shù)
- 讀后續(xù)寫(xiě)微技能Toshownottotell課件高三英語(yǔ)一輪復(fù)習(xí)寫(xiě)作專(zhuān)項(xiàng)
- 幼兒園食堂食品安全主體責(zé)任風(fēng)險(xiǎn)管控清單(日管控)
- 電氣設(shè)備維護(hù)保養(yǎng)記錄表
評(píng)論
0/150
提交評(píng)論