android教程之使用popupwindow創(chuàng)建菜單示例
PopupWindow是一個(gè)彈出式窗口,它可以展示任意View。他會(huì)浮在當(dāng)前窗口的上方展示。
下面看代碼:
public class MyActivity extends Activity{
private PopupWindow menu;
private LayoutInflater inflater;
private View layout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//實(shí)例化PopupWindow創(chuàng)建菜單
initMenu();
}
//判斷按鍵 菜單的顯示與隱藏
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(!menu.isShowing()&&keyCode == KeyEvent.KEYCODE_MENU){
show();
}else{
menu.dismiss();
}
if(keyCode == KeyEvent.KEYCODE_BACK&&menu.isShowing()){
menu.dismiss();
}
return true;
}
//實(shí)例化PopupWindow創(chuàng)建菜單
private void initMenu(){
//獲取LayoutInflater實(shí)例
inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
//獲取彈出菜單的布局
layout = inflater.inflate(R.layout.menu,null);
//設(shè)置popupWindow的布局
menu = new PopupWindow(layout, WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT);
}
//顯示菜單
private void show(){
//設(shè)置位置
menu.showAtLocation(this.findViewById(R.id.main), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0); //設(shè)置在屏幕中的顯示位置
}
}
菜單的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/icon_1"
android:background="@drawable/icon_1"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/icon_2"
android:background="@drawable/icon_2"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/icon_3"
android:background="@drawable/icon3"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/icon_4"
android:background="@drawable/icon4"
android:layout_width="40dp"
android:layout_height="40dp"/>
</LinearLayout>
相關(guān)文章
Android實(shí)現(xiàn)網(wǎng)絡(luò)加載時(shí)的對(duì)話框功能
這篇文章主要介紹了Android實(shí)現(xiàn)網(wǎng)絡(luò)加載時(shí)的對(duì)話框功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
Android開(kāi)發(fā)實(shí)現(xiàn)瀏覽器全屏顯示功能
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)瀏覽器全屏顯示功能,涉及Android布局修改及相關(guān)屬性動(dòng)態(tài)設(shè)置操作技巧,需要的朋友可以參考下2017-09-09
一看就懂的Android APP開(kāi)發(fā)入門(mén)教程
這篇文章主要介紹了Android APP開(kāi)發(fā)入門(mén)教程,從SDK下載、開(kāi)發(fā)環(huán)境搭建、代碼編寫(xiě)、APP打包等步驟一一講解,非常簡(jiǎn)明的一個(gè)Android APP開(kāi)發(fā)入門(mén)教程,需要的朋友可以參考下2014-05-05
flutter升級(jí)3.7.3報(bào)錯(cuò)Unable?to?find?bundled?Java?version解決
這篇文章主要介紹了flutter升級(jí)3.7.3報(bào)錯(cuò)Unable?to?find?bundled?Java?version解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加2023-02-02
Android實(shí)現(xiàn)跑馬燈效果的兩種簡(jiǎn)單方式
這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)跑馬燈的兩種簡(jiǎn)單方式,文中介紹了兩種方法,分別說(shuō)了每個(gè)方法的優(yōu)缺點(diǎn),需要的朋友可以選擇性使用,下面來(lái)一起看看吧2021-07-07
淺析Android Studio 3.0 升級(jí)各種坑(推薦)
本文是小編給大家收藏整理的關(guān)于Android Studio 3.0 升級(jí)后遇到的一些坑,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-11-11
Android打造屬于自己的新聞平臺(tái)(客戶端+服務(wù)器)
這篇文章主要為大家詳細(xì)介紹了Android打造屬于自己的新聞平臺(tái)的相關(guān)資料,Android實(shí)現(xiàn)新聞客戶端服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
Android Intent實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的兩種方法
這篇文章主要介紹了Android Intent實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05

