Android 4.0 桌面底部狀態欄修改

 

 

Android 4.0 桌面底部狀態欄分為兩個部分:左邊是三個導航鍵:從左置右依次是:返回鍵 ,Home鍵和RecentApplication鍵,就是查看最近打開的所有程序,多任務切換就在這裡。 這三個鍵為一個區域 叫NavigationArea,即導航區。  最右邊是NotificationArea,也就是提示信息區,有電量,無線信號,藍牙等信息顯示。 這條StatusBar,是無論打開哪個程序都會顯示在最下方的。

 

       客戶的要求需要把底部狀態欄進行隱藏,通過物理按鍵進行操作就可以瞭,這些虛擬按鍵還有右邊的狀態導航都全部隱藏。我最初以為在Launcher裡面實現的,看代碼看瞭看瞭半個多小時居然連個返回按鈕的圖標都沒有找到。心裡想打開任意程序居然都可以顯示在下方應該是系統UI把,我就試著去(frameworks/base/packages/SystemUI/res)下面的drawable理解找“返回鍵”圖標,居然找到瞭,心裡盡是歡喜。順藤摸瓜最後找到圖標所屬的java類是TabletStatusBar.java(frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet)在找到該類下的makeStatusBarView()方法就可以看到

// The navigation buttons

       mBackButton = (ImageView)sb.findViewById(R.id.back);

       mNavigationArea = (ViewGroup) sb.findViewById(R.id.navigationArea);

        mHomeButton =mNavigationArea.findViewById(R.id.home);

       mMenuButton = mNavigationArea.findViewById(R.id.menu);

       mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);

       mRecentButton.setOnClickListener(mOnClickListener);在這裡就知道系統做瞭什麼事情瞭。繼續往上看瞭一下使用到瞭sb這個View對象原來在這裡引用的。

final TabletStatusBarView sb =(TabletStatusBarView)View.inflate(context, R.layout.status_bar, null); TabletStatusBarView.java類是繼承FrameLayout,在這裡就可以設置它的隱藏或者顯示屬性瞭。暫且到這裡底層的事件傳遞虛擬按鍵的原理後續獻上。

 作者:LuoXianXion
 

發佈留言