update:1.7.4
date:2021-10-11 18:29:55 fix: add:沉浸状态栏
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -84,4 +84,3 @@ lint/outputs/
|
|||||||
lint/tmp/
|
lint/tmp/
|
||||||
# lint/reports/
|
# lint/reports/
|
||||||
/.idea/
|
/.idea/
|
||||||
/.idea/libraries/
|
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ android {
|
|||||||
applicationId "com.appstore.uiui"
|
applicationId "com.appstore.uiui"
|
||||||
minSdkVersion 26
|
minSdkVersion 26
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 70
|
versionCode 74
|
||||||
versionName "1.7.0"
|
versionName "1.7.4"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
//极光
|
//极光
|
||||||
ndk {
|
ndk {
|
||||||
@@ -160,13 +160,17 @@ dependencies {
|
|||||||
//google
|
//google
|
||||||
implementation 'com.google.code.gson:gson:2.8.7'
|
implementation 'com.google.code.gson:gson:2.8.7'
|
||||||
implementation 'com.google.zxing:core:3.3.0'
|
implementation 'com.google.zxing:core:3.3.0'
|
||||||
|
//fastjson
|
||||||
implementation 'com.alibaba:fastjson:1.2.76'
|
implementation 'com.alibaba:fastjson:1.2.76'
|
||||||
//极光推送
|
//极光推送
|
||||||
implementation 'cn.jiguang.sdk:jpush:3.8.6' // 此处以JPush 3.4.1 版本为例。
|
implementation 'cn.jiguang.sdk:jpush:3.8.6' // 此处以JPush 3.4.1 版本为例。
|
||||||
implementation 'cn.jiguang.sdk:jcore:2.6.0' // 此处以JCore 2.2.4 版本为例。
|
implementation 'cn.jiguang.sdk:jcore:2.6.0' // 此处以JCore 2.2.4 版本为例。
|
||||||
//banner图
|
//banner图
|
||||||
implementation 'com.zhpan.library:bannerview:2.6.4'
|
implementation 'com.zhpan.library:bannerview:2.6.4'
|
||||||
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
|
|
||||||
//更换字体框架
|
//更换字体框架
|
||||||
|
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
|
||||||
|
//工具类
|
||||||
implementation 'com.blankj:utilcodex:1.30.6'
|
implementation 'com.blankj:utilcodex:1.30.6'
|
||||||
|
//沉浸状态栏
|
||||||
|
implementation 'com.gitee.zackratos:UltimateBarX:0.7.1'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
android:networkSecurityConfig="@xml/network"
|
android:networkSecurityConfig="@xml/network"
|
||||||
android:roundIcon="@mipmap/ic_launcher"
|
android:roundIcon="@mipmap/ic_launcher"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/ImmerseTheme"
|
||||||
tools:ignore="GoogleAppIndexingWarning">
|
tools:ignore="GoogleAppIndexingWarning">
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.MainActivity"
|
android:name=".activity.MainActivity"
|
||||||
@@ -58,10 +58,7 @@
|
|||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
android:screenOrientation="sensor"
|
android:screenOrientation="sensor"
|
||||||
android:theme="@style/activity_styles" />
|
android:theme="@style/activity_styles" />
|
||||||
<service
|
|
||||||
android:name=".service.InitJpushServer"
|
|
||||||
android:enabled="true"
|
|
||||||
android:exported="true" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.KindDetailActivity"
|
android:name=".activity.KindDetailActivity"
|
||||||
android:screenOrientation="behind" />
|
android:screenOrientation="behind" />
|
||||||
@@ -74,9 +71,14 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".activity.DownloadManagerActivity"
|
android:name=".activity.DownloadManagerActivity"
|
||||||
android:screenOrientation="behind" />
|
android:screenOrientation="behind" />
|
||||||
|
|
||||||
<service android:name=".service.GuardService" />
|
<service android:name=".service.GuardService" />
|
||||||
<service android:name=".service.StepService" />
|
<service android:name=".service.StepService" />
|
||||||
<service android:name=".service.MyDownloadService" />
|
<service android:name=".service.MyDownloadService" />
|
||||||
|
<service
|
||||||
|
android:name=".service.InitJpushServer"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="true" />
|
||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".receiver.BootReceiver"
|
android:name=".receiver.BootReceiver"
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ import android.view.WindowManager;
|
|||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
|
import com.appstore.uiui.R;
|
||||||
|
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
||||||
|
|
||||||
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
|
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
|
||||||
|
|
||||||
|
|
||||||
@@ -26,7 +29,16 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
// if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
|
// if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
|
||||||
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
||||||
// }
|
// }
|
||||||
setStatusBar();
|
UltimateBarX.statusBar(this)
|
||||||
|
.transparent()
|
||||||
|
.colorRes(R.color.colorPrimaryDark)
|
||||||
|
.light(true)
|
||||||
|
.apply();
|
||||||
|
UltimateBarX.navigationBar(this)
|
||||||
|
.transparent()
|
||||||
|
.colorRes(R.color.colorPrimaryDark)
|
||||||
|
.light(true)
|
||||||
|
.apply();
|
||||||
setContentView(setLayoutResourceID());
|
setContentView(setLayoutResourceID());
|
||||||
initView();
|
initView();
|
||||||
setListener();
|
setListener();
|
||||||
@@ -92,7 +104,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
* 设置根布局参数
|
* 设置根布局参数
|
||||||
*/
|
*/
|
||||||
private static void setRootView(Activity activity) {
|
private static void setRootView(Activity activity) {
|
||||||
ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
|
ViewGroup parent = activity.findViewById(android.R.id.content);
|
||||||
for (int i = 0, count = parent.getChildCount(); i < count; i++) {
|
for (int i = 0, count = parent.getChildCount(); i < count; i++) {
|
||||||
View childView = parent.getChildAt(i);
|
View childView = parent.getChildAt(i);
|
||||||
if (childView instanceof ViewGroup) {
|
if (childView instanceof ViewGroup) {
|
||||||
|
|||||||
344
app/src/main/java/com/appstore/uiui/utils/StatusBarUtil.java
Normal file
344
app/src/main/java/com/appstore/uiui/utils/StatusBarUtil.java
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
package com.appstore.uiui.utils;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.os.Environment;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
|
import android.view.Display;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.view.Window;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class StatusBarUtil {
|
||||||
|
public static int screenWidth;
|
||||||
|
public static int screenHeight;
|
||||||
|
public static int navigationHeight = 0;
|
||||||
|
|
||||||
|
private static DisplayMetrics mMetrics;
|
||||||
|
public static final String HOME_CURRENT_TAB_POSITION = "HOME_CURRENT_TAB_POSITION";
|
||||||
|
|
||||||
|
public static final String SYS_EMUI = "sys_emui";
|
||||||
|
public static final String SYS_MIUI = "sys_miui";
|
||||||
|
public static final String SYS_FLYME = "sys_flyme";
|
||||||
|
private static final String KEY_MIUI_VERSION_CODE = "ro.miui.ui.version.code";
|
||||||
|
private static final String KEY_MIUI_VERSION_NAME = "ro.miui.ui.version.name";
|
||||||
|
private static final String KEY_MIUI_INTERNAL_STORAGE = "ro.miui.internal.storage";
|
||||||
|
private static final String KEY_EMUI_API_LEVEL = "ro.build.hw_emui_api_level";
|
||||||
|
private static final String KEY_EMUI_VERSION = "ro.build.version.emui";
|
||||||
|
private static final String KEY_EMUI_CONFIG_HW_SYS_VERSION = "ro.confg.hw_systemversion";
|
||||||
|
|
||||||
|
public static void init(Activity activity) {
|
||||||
|
ViewGroup contentLayout = activity.getWindow().getDecorView().findViewById(Window.ID_ANDROID_CONTENT);
|
||||||
|
StatusBarUtil.setStatusBar(activity, false, true);
|
||||||
|
StatusBarUtil.setStatusTextColor(true, activity);
|
||||||
|
StatusBarUtil.setStatusBarPadding(activity, contentLayout);
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
activity.getWindow().setStatusBarColor(activity.getResources().getColor(android.R.color.transparent));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过反射的方式获取状态栏高度
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static int getStatusBarHeight(Context context) {
|
||||||
|
try {
|
||||||
|
Class<?> c = Class.forName("com.android.internal.R$dimen");
|
||||||
|
Object obj = c.newInstance();
|
||||||
|
Field field = c.getField("status_bar_height");
|
||||||
|
int x = Integer.parseInt(field.get(obj).toString());
|
||||||
|
return context.getResources().getDimensionPixelSize(x);
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取底部导航栏高度
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static int getNavigationBarHeight(Context context) {
|
||||||
|
Resources resources = context.getResources();
|
||||||
|
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
|
||||||
|
//获取NavigationBar的高度
|
||||||
|
navigationHeight = resources.getDimensionPixelSize(resourceId);
|
||||||
|
return navigationHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取是否存在NavigationBar
|
||||||
|
public static boolean checkDeviceHasNavigationBar(Context context) {
|
||||||
|
boolean hasNavigationBar = false;
|
||||||
|
Resources rs = context.getResources();
|
||||||
|
int id = rs.getIdentifier("config_showNavigationBar", "bool", "android");
|
||||||
|
if (id > 0) {
|
||||||
|
hasNavigationBar = rs.getBoolean(id);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
|
||||||
|
Method m = systemPropertiesClass.getMethod("get", String.class);
|
||||||
|
String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");
|
||||||
|
if ("1".equals(navBarOverride)) {
|
||||||
|
hasNavigationBar = false;
|
||||||
|
} else if ("0".equals(navBarOverride)) {
|
||||||
|
hasNavigationBar = true;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return hasNavigationBar;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param activity
|
||||||
|
* @param useThemestatusBarColor 是否要状态栏的颜色,不设置则为透明色
|
||||||
|
* @param withoutUseStatusBarColor 是否不需要使用状态栏为暗色调
|
||||||
|
*/
|
||||||
|
public static void setStatusBar(Activity activity, boolean useThemestatusBarColor, boolean withoutUseStatusBarColor) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
|
||||||
|
View decorView = activity.getWindow().getDecorView();
|
||||||
|
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
|
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
|
||||||
|
decorView.setSystemUiVisibility(option);
|
||||||
|
if (useThemestatusBarColor) {
|
||||||
|
activity.getWindow().setStatusBarColor(activity.getResources().getColor(android.R.color.white));
|
||||||
|
} else {
|
||||||
|
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
|
||||||
|
}
|
||||||
|
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
|
||||||
|
WindowManager.LayoutParams localLayoutParams = activity.getWindow().getAttributes();
|
||||||
|
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
|
||||||
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !withoutUseStatusBarColor) {
|
||||||
|
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void reMeasure(Activity activity) {
|
||||||
|
Display display = activity.getWindowManager().getDefaultDisplay();
|
||||||
|
mMetrics = new DisplayMetrics();
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= 17) {
|
||||||
|
display.getRealMetrics(mMetrics);
|
||||||
|
} else {
|
||||||
|
display.getMetrics(mMetrics);
|
||||||
|
}
|
||||||
|
|
||||||
|
screenWidth = mMetrics.widthPixels;
|
||||||
|
screenHeight = mMetrics.heightPixels;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 改变魅族的状态栏字体为黑色,要求FlyMe4以上
|
||||||
|
*/
|
||||||
|
private static void processFlyMe(boolean isLightStatusBar, Activity activity) {
|
||||||
|
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
|
||||||
|
try {
|
||||||
|
Class<?> instance = Class.forName("android.view.WindowManager$LayoutParams");
|
||||||
|
int value = instance.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON").getInt(lp);
|
||||||
|
Field field = instance.getDeclaredField("meizuFlags");
|
||||||
|
field.setAccessible(true);
|
||||||
|
int origin = field.getInt(lp);
|
||||||
|
if (isLightStatusBar) {
|
||||||
|
field.set(lp, origin | value);
|
||||||
|
} else {
|
||||||
|
field.set(lp, (~value) & origin);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 改变小米的状态栏字体颜色为黑色, 要求MIUI6以上 lightStatusBar为真时表示黑色字体
|
||||||
|
*/
|
||||||
|
private static void processMIUI(boolean lightStatusBar, Activity activity) {
|
||||||
|
Class<? extends Window> clazz = activity.getWindow().getClass();
|
||||||
|
try {
|
||||||
|
int darkModeFlag;
|
||||||
|
Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
|
||||||
|
Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
|
||||||
|
darkModeFlag = field.getInt(layoutParams);
|
||||||
|
Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
|
||||||
|
extraFlagField.invoke(activity.getWindow(), lightStatusBar ? darkModeFlag : 0, darkModeFlag);
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置OPPO手机状态栏字体为黑色(colorOS3.0,6.0以下部分手机)
|
||||||
|
*
|
||||||
|
* @param lightStatusBar
|
||||||
|
* @param activity
|
||||||
|
*/
|
||||||
|
private static final int SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT = 0x00000010;
|
||||||
|
|
||||||
|
private static void setOPPOStatusTextColor(boolean lightStatusBar, Activity activity) {
|
||||||
|
Window window = activity.getWindow();
|
||||||
|
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||||
|
int vis = window.getDecorView().getSystemUiVisibility();
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
if (lightStatusBar) {
|
||||||
|
vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
|
||||||
|
} else {
|
||||||
|
vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
|
||||||
|
}
|
||||||
|
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
if (lightStatusBar) {
|
||||||
|
vis |= SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT;
|
||||||
|
} else {
|
||||||
|
vis &= ~SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.getDecorView().setSystemUiVisibility(vis);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断手机是否是小米
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean isMIUI() {
|
||||||
|
return SYS_MIUI.equals(getSystem());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断手机是否是魅族
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean isFlyme() {
|
||||||
|
try {
|
||||||
|
// Invoke Build.hasSmartBar()
|
||||||
|
final Method method = Build.class.getMethod("hasSmartBar");
|
||||||
|
return method != null;
|
||||||
|
} catch (final Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置状态栏文字色值为深色调
|
||||||
|
*
|
||||||
|
* @param useDart 是否使用深色调
|
||||||
|
* @param activity
|
||||||
|
*/
|
||||||
|
public static void setStatusTextColor(boolean useDart, Activity activity) {
|
||||||
|
if (isFlyme()) {
|
||||||
|
processFlyMe(useDart, activity);
|
||||||
|
} else if (isMIUI()) {
|
||||||
|
processMIUI(useDart, activity);
|
||||||
|
} else if (Build.MANUFACTURER.equalsIgnoreCase("OPPO")) {
|
||||||
|
//OPPO
|
||||||
|
setOPPOStatusTextColor(useDart, activity);
|
||||||
|
} else {
|
||||||
|
if (useDart) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
activity.getWindow().getDecorView().setSystemUiVisibility(
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
|
||||||
|
}
|
||||||
|
activity.getWindow().getDecorView().findViewById(android.R.id.content).setPadding(0, 0, 0, navigationHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作者:Loyea
|
||||||
|
* 链接:https://www.jianshu.com/p/abd021c22728
|
||||||
|
* 來源:简书
|
||||||
|
* 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
|
||||||
|
*/
|
||||||
|
public static void setAndroidNativeLightStatusBar(Activity activity, boolean dark) {
|
||||||
|
View decor = activity.getWindow().getDecorView();
|
||||||
|
if (dark) {
|
||||||
|
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
|
} else {
|
||||||
|
// We want to change tint color to white again.
|
||||||
|
// You can also record the flags in advance so that you can turn UI back completely if
|
||||||
|
// you have set other flags before, such as translucent or full screen.
|
||||||
|
decor.setSystemUiVisibility(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getSystem() {
|
||||||
|
String SYS = "";
|
||||||
|
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
|
||||||
|
if (!TextUtils.isEmpty(getSystemProperty(KEY_MIUI_VERSION_CODE, ""))
|
||||||
|
|| !TextUtils.isEmpty(getSystemProperty(KEY_MIUI_VERSION_NAME, ""))
|
||||||
|
|| !TextUtils.isEmpty(getSystemProperty(KEY_MIUI_INTERNAL_STORAGE, ""))) {
|
||||||
|
SYS = SYS_MIUI;//小米
|
||||||
|
} else if (!TextUtils.isEmpty(getSystemProperty(KEY_EMUI_API_LEVEL, ""))
|
||||||
|
|| !TextUtils.isEmpty(getSystemProperty(KEY_EMUI_VERSION, ""))
|
||||||
|
|| !TextUtils.isEmpty(getSystemProperty(KEY_EMUI_CONFIG_HW_SYS_VERSION, ""))) {
|
||||||
|
SYS = SYS_EMUI;//华为
|
||||||
|
} else if (getMeizuFlymeOSFlag().toLowerCase().contains("flyme")) {
|
||||||
|
SYS = SYS_FLYME;//魅族
|
||||||
|
}
|
||||||
|
return SYS;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
Properties prop = new Properties();
|
||||||
|
prop.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop")));
|
||||||
|
if (prop.getProperty(KEY_MIUI_VERSION_CODE, null) != null
|
||||||
|
|| prop.getProperty(KEY_MIUI_VERSION_NAME, null) != null
|
||||||
|
|| prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) != null) {
|
||||||
|
SYS = SYS_MIUI;//小米
|
||||||
|
} else if (prop.getProperty(KEY_EMUI_API_LEVEL, null) != null
|
||||||
|
|| prop.getProperty(KEY_EMUI_VERSION, null) != null
|
||||||
|
|| prop.getProperty(KEY_EMUI_CONFIG_HW_SYS_VERSION, null) != null) {
|
||||||
|
SYS = SYS_EMUI;//华为
|
||||||
|
} else if (getMeizuFlymeOSFlag().toLowerCase().contains("flyme")) {
|
||||||
|
SYS = SYS_FLYME;//魅族
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return SYS;
|
||||||
|
} finally {
|
||||||
|
return SYS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getSystemProperty(String key, String defaultValue) {
|
||||||
|
try {
|
||||||
|
Class<?> clz = Class.forName("android.os.SystemProperties");
|
||||||
|
Method get = clz.getMethod("get", String.class, String.class);
|
||||||
|
return (String) get.invoke(clz, key, defaultValue);
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getMeizuFlymeOSFlag() {
|
||||||
|
return getSystemProperty("ro.build.display.id", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全屏模式下 针对刘海屏向下移动view
|
||||||
|
*
|
||||||
|
* @param context
|
||||||
|
* @param view 需要设置padding的view
|
||||||
|
*/
|
||||||
|
public static void setStatusBarPadding(Context context, View view) {
|
||||||
|
if (view != null) {
|
||||||
|
view.setPadding(0, getStatusBarHeight(context), 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="colorPrimary">#008577</color>
|
<color name="colorPrimary">#FFFFFF</color>
|
||||||
<color name="colorPrimaryDark">#00574B</color>
|
<color name="colorPrimaryDark">#FFFFFF</color>
|
||||||
<color name="colorAccent">#D81B60</color>
|
<color name="colorAccent">#FFFFFF</color>
|
||||||
|
<!-- <color name="colorPrimary">#008577</color>-->
|
||||||
|
<!-- <color name="colorPrimaryDark">#00574B</color>-->
|
||||||
|
<!-- <color name="colorAccent">#D81B60</color>-->
|
||||||
<color name="white">#FFFFFF</color>
|
<color name="white">#FFFFFF</color>
|
||||||
<color name="black">#000000</color>
|
<color name="black">#000000</color>
|
||||||
<color name="gray">#f5f4f4</color>
|
<color name="gray">#f5f4f4</color>
|
||||||
|
|||||||
@@ -9,6 +9,17 @@
|
|||||||
<!-- <item name="fontPath">fonts/test.ttf</item>-->
|
<!-- <item name="fontPath">fonts/test.ttf</item>-->
|
||||||
<!-- <item name="fontPath">fonts/SourceHanSansCN-ExtraLight.ttf</item>-->
|
<!-- <item name="fontPath">fonts/SourceHanSansCN-ExtraLight.ttf</item>-->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!--沉浸状态栏需要此主题-->
|
||||||
|
<style name="ImmerseTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||||
|
<!-- Customize your theme here. -->
|
||||||
|
<item name="colorPrimary">@color/colorPrimary</item>
|
||||||
|
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||||
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
|
<item name="android:windowBackground">@color/colorPrimary</item>
|
||||||
|
<item name="android:fitsSystemWindows">true</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="activity_styles" parent="Theme.AppCompat.Light.DarkActionBar">
|
<style name="activity_styles" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
<!-- <item name="android:windowFullscreen">true</item>-->
|
<!-- <item name="android:windowFullscreen">true</item>-->
|
||||||
<!--设置dialog的背景-->
|
<!--设置dialog的背景-->
|
||||||
|
|||||||
Reference in New Issue
Block a user