您的位置:首页 > 其它

长按事件来控制状态栏的隐藏和显示

2014-02-24 11:24 288 查看
        最近客户有个需求:就是要通过在LANCHER中的长按事件来控制状态栏隐藏和显示,比如说:判断当前的状态栏的状态,如果当前状态栏是隐藏的,那么长按事件就是显示状态栏,如果当前状态栏是显示的,那么长按的事件就是隐藏状态栏。

        前面也有一篇文章:ANDROID
动态开关状态栏,是通过广播的形式来动态控制状态栏的,这里有个简单的例子:就是借用LANCHER中长按会弹出选择壁纸的地方来添加我们要实现的功能;下面贴下更改的PATCH

       diff --git a/device/rockchip/rk30sdk/device.mk b/device/rockchip/rk30sdk/device.mk

index c98aae8..1fd4c25 100755

--- a/device/rockchip/rk30sdk/device.mk

+++ b/device/rockchip/rk30sdk/device.mk

@@ -245,6 +245,7 @@ PRODUCT_PROPERTY_OVERRIDES += \

     ro.rk.install_non_market_apps=false\

     ro.default.size=100\

     persist.sys.timezone=Atlantic/Azores\

+    persist.sys.fullscreen=normal\

     persist.sys.reboottest=0 \

     ro.product.usbfactory=rockchip_usb \

     wifi.supplicant_scan_interval=15 \

diff --git a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager

index 3805dd3..2fc6af8 100755

--- a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

+++ b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

@@ -4506,9 +4506,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {

             // will quickly lose focus once it correctly gets hidden.

             return 0;

         }

-        int tmpVisibility = mFocusedWindow.getSystemUiVisibility()

-                & ~mResettingSystemUiFlags

-                & ~mForceClearedSystemUiFlags;

+        int tmpVisibility;

+               int temp= mFocusedWindow.getSystemUiVisibility()& ~mResettingSystemUiFlags& ~mForceClearedSystemUiFlags;

+               //Log.v(TAG, "yds ,SystemProperties.get persist.sys.fullscreen=" + SystemProperties.get("persist.sys.fullscreen",""));

+               if(SystemProperties.get("persist.sys.fullscreen","").equals("full")){

+                       tmpVisibility=temp|View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN;

+                       }else{

+                       tmpVisibility=temp;

+                       }

         if (mForcingShowNavBar && mFocusedWindow.getSurfaceLayer() < mForcingShowNavBarLayer) {

             tmpVisibility &= ~View.SYSTEM_UI_CLEARABLE_FLAGS;

         }

diff --git a/packages/apps/Launcher2/src/com/android/launcher2/Launcher.java b/packages/apps/Launcher2/src/com/android/launcher2/Launcher.java

index b42eb4d..bdbeea0 100755

--- a/packages/apps/Launcher2/src/com/android/launcher2/Launcher.java

+++ b/packages/apps/Launcher2/src/com/android/launcher2/Launcher.java

@@ -2337,6 +2337,13 @@ public final class Launcher extends Activity

             v = (View) v.getParent().getParent();

         }

 

+        if(SystemProperties.get("persist.sys.fullscreen","").equals("full")){

+                       SystemProperties.set("persist.sys.fullscreen","normal");

+                       }else{

+                       SystemProperties.set("persist.sys.fullscreen","full");

+                       }

         resetAddInfo();

         CellLayout.CellInfo longClickCellInfo = (CellLayout.CellInfo) v.getTag();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: