肿么弄。。确认可用后加分采纳
æ²æµ¸å¼éç¥æ Android4.4以ä¸ææ¯æçæ°ç¹æ§ã
å ·ä½å®ç°æ¹å¼å¦ä¸ï¼
1.æ°å»ºä¸ªå ¬å ±styleï¼è®¾ç½®android:fitsSystemWindows=true
<!-- 设置åºç¨å¸å±æ¶æ¯å¦èèç³»ç»çªå£å¸å±ï¼true --> <style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar"> <item name="android:fitsSystemWindows">true</item> </style>
2. ä¿®æ¹AndroidManifest.xmlï¼è®©ææçactivityæ ·å¼é»è®¤è®¾ç½®ä¸ºAppBaseThemeï¼*ä¸å项ç®è¦çµæ´»å¤çï¼ç¬è 项ç®çactivityæ ·å¼é½æ¯ç»ä¸çæ以è¿æ ·è®¾ç½®æ²¡é®é¢ï¼ä½æ¯å®é æ åµä¸ä¸åçactivityå¯è½è°ç¨çæ ·å¼ä¸ä¸æ ·ï¼éè¦è¯»è èªè¡æèªå·±ç项ç®æ¥è®¾ç½®)
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppBaseTheme" android:name="****">
3.æ°å¢æ²æµ¸å¼éç¥æ å®ç°ç±»ï¼å®ç°åçå¾ç®åã
1)å¤æå½åç³»ç»çæ¬æ¯ä¸æ¯4.4以ä¸ï¼å¤æ代ç å¦ä¸ï¼
if (VERSION.SDK_INT >= VERSION_CODES.KITKAT)
2)å¦æ大äº4.4å设置ç¶ææ éæåï¼ä»£ç å¦ä¸ï¼
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
3)è·åactivityçæ ¹rootView(DecorView)ï¼ç¶åå建ä¸ä¸ªæ°çview stateBarView并æå®æ·»å å°rootView(è¿éæå¨ç»å®è®¾ç½®ä¸ªIDï¼ä¸æ¬¡è¿æ¥æ¶å å¤ærootViewæ¯å¦å·²å建stateBarView,å¦æå·²å建åç´æ¥è·å该Viewè¿æ ·å¯ä»¥é²æ¢éå¤å建ï¼å¯¼è´å åæ³é²ï¼
以ä¸æ¯å ·ä½ä»£ç å®ç°ï¼
import android.annotation.SuppressLint;import android.app.Activity;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Build;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.FrameLayout.LayoutParams;/** * æ²æµ¸å¼éç¥æ å ¬å ±ç±» * @author hurrican * */@SuppressLint({ "InlinedApi", "ResourceAsColor" })public class ImmersedNotificationBar { private Activity activity ; //设置æ²æµ¸å¼éç¥æ çID(é²æ¢éå¤å建) private final static int IMMERSED_NOTIFICATION_BAR_ID = 12345678 ; private final static String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height" ; public ImmersedNotificationBar(Activity activity){ this.activity = activity ; } //è·åç¶ææ é«åº¦ private int getStatusBarHeight(Resources res){ int statusBarHeight = 0; int resourceId = res.getIdentifier(STATUS_BAR_HEIGHT_RES_NAME, "dimen", "android"); if (resourceId > 0) { statusBarHeight = res.getDimensionPixelSize(resourceId); } return statusBarHeight ; } //æ·»å 顶é¨ç¶ææ private View addStateBar(Activity activity,ViewGroup rootView,int statusBarHeight){ //å建æ°çView,并添å å°rootView顶é¨) View statusBarView ; if(null!=rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID)){ statusBarView = rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID); }else{ statusBarView = new View(activity); rootView.addView(statusBarView); } statusBarView.setId(IMMERSED_NOTIFICATION_BAR_ID) ; LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,statusBarHeight); params.gravity = Gravity.TOP; statusBarView.setLayoutParams(params); statusBarView.setVisibility(View.VISIBLE); return statusBarView ; } /** * 设置ç¶ææ é¢è² * @param ColorId */ public void setStateBarColor(int ColorId){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activityç顶级å¸å± ViewGroup rootView = (ViewGroup) window.getDecorView(); //éæåç¶ææ window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //è·åç¶ææ ç®çé«åº¦ int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundColor(ColorId) ; } } /** * 设置ç¶ææ é¢è² * @param ColorId */ public void setStateBarDrawable(Drawable drawable){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activityç顶级å¸å± ViewGroup rootView = (ViewGroup) window.getDecorView(); //éæåç¶ææ window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //è·åç¶ææ ç®çé«åº¦ int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundDrawable(drawable) ; } }}
å ·ä½å®ç°æ¹å¼å¦ä¸ï¼
1.æ°å»ºä¸ªå ¬å ±styleï¼è®¾ç½®android:fitsSystemWindows=true
<!-- 设置åºç¨å¸å±æ¶æ¯å¦èèç³»ç»çªå£å¸å±ï¼true --> <style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar"> <item name="android:fitsSystemWindows">true</item> </style>
2. ä¿®æ¹AndroidManifest.xmlï¼è®©ææçactivityæ ·å¼é»è®¤è®¾ç½®ä¸ºAppBaseThemeï¼*ä¸å项ç®è¦çµæ´»å¤çï¼ç¬è 项ç®çactivityæ ·å¼é½æ¯ç»ä¸çæ以è¿æ ·è®¾ç½®æ²¡é®é¢ï¼ä½æ¯å®é æ åµä¸ä¸åçactivityå¯è½è°ç¨çæ ·å¼ä¸ä¸æ ·ï¼éè¦è¯»è èªè¡æèªå·±ç项ç®æ¥è®¾ç½®)
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppBaseTheme" android:name="****">
3.æ°å¢æ²æµ¸å¼éç¥æ å®ç°ç±»ï¼å®ç°åçå¾ç®åã
1)å¤æå½åç³»ç»çæ¬æ¯ä¸æ¯4.4以ä¸ï¼å¤æ代ç å¦ä¸ï¼
if (VERSION.SDK_INT >= VERSION_CODES.KITKAT)
2)å¦æ大äº4.4å设置ç¶ææ éæåï¼ä»£ç å¦ä¸ï¼
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
3)è·åactivityçæ ¹rootView(DecorView)ï¼ç¶åå建ä¸ä¸ªæ°çview stateBarView并æå®æ·»å å°rootView(è¿éæå¨ç»å®è®¾ç½®ä¸ªIDï¼ä¸æ¬¡è¿æ¥æ¶å å¤ærootViewæ¯å¦å·²å建stateBarView,å¦æå·²å建åç´æ¥è·å该Viewè¿æ ·å¯ä»¥é²æ¢éå¤å建ï¼å¯¼è´å åæ³é²ï¼
以ä¸æ¯å ·ä½ä»£ç å®ç°ï¼
import android.annotation.SuppressLint;import android.app.Activity;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Build;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.FrameLayout.LayoutParams;/** * æ²æµ¸å¼éç¥æ å ¬å ±ç±» * @author hurrican * */@SuppressLint({ "InlinedApi", "ResourceAsColor" })public class ImmersedNotificationBar { private Activity activity ; //设置æ²æµ¸å¼éç¥æ çID(é²æ¢éå¤å建) private final static int IMMERSED_NOTIFICATION_BAR_ID = 12345678 ; private final static String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height" ; public ImmersedNotificationBar(Activity activity){ this.activity = activity ; } //è·åç¶ææ é«åº¦ private int getStatusBarHeight(Resources res){ int statusBarHeight = 0; int resourceId = res.getIdentifier(STATUS_BAR_HEIGHT_RES_NAME, "dimen", "android"); if (resourceId > 0) { statusBarHeight = res.getDimensionPixelSize(resourceId); } return statusBarHeight ; } //æ·»å 顶é¨ç¶ææ private View addStateBar(Activity activity,ViewGroup rootView,int statusBarHeight){ //å建æ°çView,并添å å°rootView顶é¨) View statusBarView ; if(null!=rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID)){ statusBarView = rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID); }else{ statusBarView = new View(activity); rootView.addView(statusBarView); } statusBarView.setId(IMMERSED_NOTIFICATION_BAR_ID) ; LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,statusBarHeight); params.gravity = Gravity.TOP; statusBarView.setLayoutParams(params); statusBarView.setVisibility(View.VISIBLE); return statusBarView ; } /** * 设置ç¶ææ é¢è² * @param ColorId */ public void setStateBarColor(int ColorId){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activityç顶级å¸å± ViewGroup rootView = (ViewGroup) window.getDecorView(); //éæåç¶ææ window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //è·åç¶ææ ç®çé«åº¦ int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundColor(ColorId) ; } } /** * 设置ç¶ææ é¢è² * @param ColorId */ public void setStateBarDrawable(Drawable drawable){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activityç顶级å¸å± ViewGroup rootView = (ViewGroup) window.getDecorView(); //éæåç¶ææ window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //è·åç¶ææ ç®çé«åº¦ int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundDrawable(drawable) ; } }}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-12-17
去百度移动应用下载(Iphone-4s桌面)就ok
第2个回答 2015-08-28
下载对应的主题就可以实现了
第3个回答 2012-12-17
下载软件就行了,去你手机型号的论坛吧,那里对你型号的手机的高手多