當前位置:首頁 » 安卓系統 » 安卓怎麼有iphone狀態欄

安卓怎麼有iphone狀態欄

發布時間: 2024-07-03 19:15:30

『壹』 android浠縤phone鐘舵佹爮鐣岄潰

鍙浠ヤ笅杞戒竴涓鍙鈥渋OS7鐘舵佹爮鈥濈殑杞浠跺疄鐜般

IOS7鐘舵佹爮鏄涓涓猧OS7/iOS6椋庢牸鐨勭姸鎬佹爮鐨勫簲鐢ㄧ▼搴忋傞叿鍍廼OS鐘舵佹爮鐨刄I銆備嬌鐢ㄨ搗鏉ラ潪甯哥畝鍗曪紝涓嶉渶瑕佸畨瑁呬換浣曞叾浠栫涓夋柟搴旂敤紼嬪簭銆

鐗圭偣錛
- 鏀鎸佹墍鏈塱OS 7/iOS鐨勯庢牸銆
- 閰穒Phone椋庢牸鐨刄I銆
- 鏀鎸佹柊鐨勯氱煡璀︽姤鍍廼OS 7銆
- 鏄劇ず鍗¤創/ WIFI /钃濈墮/ GPS /鏃嬭漿/鏃墮挓鐘舵併
- 鑷瀹氫箟鑳屾櫙鑹蹭負姣忎釜搴旂敤紼嬪簭鐨勭姸鎬佹爮銆
- 鑷瀹氫箟緗戠粶榪愯惀鍟嗙殑鍚嶅瓧銆
- 鏄劇ず鐘舵佹爮涓婃墍鏈夌殑搴旂敤紼嬪簭閫氱煡銆

『貳』 安卓手機要腫么弄成iPhone狀態欄,已root。

沉浸式通知欄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) ; } }}

『叄』 小米手機怎麼把狀態欄設置成iPhone那樣

1、小米手機運行的是MIUI系統,該系統自帶主題風格應用,因此用戶可以進入主題風格裡面選擇一款ios風格的主題,下載並應用到手機上,即可實現狀態欄和iphone手機的狀態欄相似。
2、MIUI(米柚)是小米科技旗下基於Android操作系統所開發的ROM(刷機所用的鏡像),專為中國人習慣設計,全面改進原生體驗,能夠帶給國內用戶更為貼心的Android智能手機體驗。MIUI發布五年來,研發團隊達750人,每周升級已經累計發布249個版本,擁有激活用戶1.5億,遍布156個國家和地區、32種語言。

熱點內容
現在存摺的密碼是多少 發布:2024-07-06 05:26:00 瀏覽:688
小新pro16幾個配置怎麼選擇 發布:2024-07-06 05:17:51 瀏覽:688
哪種資料庫好 發布:2024-07-06 04:50:52 瀏覽:929
榮耀聯盟支付密碼怎麼設置 發布:2024-07-06 04:41:41 瀏覽:818
crc32加密 發布:2024-07-06 04:19:07 瀏覽:899
b站視頻上傳碼率 發布:2024-07-06 04:18:36 瀏覽:567
java培訓的學費是多少 發布:2024-07-06 04:16:56 瀏覽:340
nexs安卓90什麼時候可以升級 發布:2024-07-06 03:40:04 瀏覽:454
c語言字元串相同 發布:2024-07-06 03:35:47 瀏覽:511
百度文庫賬號密碼多少位數字 發布:2024-07-06 03:26:19 瀏覽:199