package com.uas.standard_esop.activity; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.ImageView; import android.widget.LinearLayout; import androidx.appcompat.app.AppCompatActivity; import com.uas.standard_esop.R; import com.uas.standard_esop.util.CommonUtil; import com.uas.standard_esop.util.DateFormatUtil; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import static com.uas.standard_esop.util.OSUtil.isMIUI; import static razerdp.util.RomUtil.isFlyme; public class PdfsActivity extends AppCompatActivity { private Window window; private boolean useThemeStatusBarColor = false;//是否使用特殊的标题栏背景颜色,android5.0以上可以设置状态栏背景色,如果不使用则使用透明色值 private boolean useStatusBarColor = true;//是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏和图标为暗色,android6.0以上可以设置 private int option; private boolean fullscreen=false; private Context context; private String destDirPath; private String filename; private String filepath; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pdfs); window = getWindow(); context=this; Intent intent = getIntent(); ArrayList lists = intent.getStringArrayListExtra("lists"); filename = intent.getStringExtra("filename"); for (int i=0;i= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上 View decorView = window.getDecorView(); option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); //根据上面设置是否对状态栏单独设置颜色 if (useThemeStatusBarColor) { window.setStatusBarColor(getResources().getColor(R.color.colorMain)); } else { window.setStatusBarColor(Color.TRANSPARENT); } } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0 WindowManager.LayoutParams localLayoutParams = window.getAttributes(); localLayoutParams.flags = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useStatusBarColor) {//android6.0以后可以对状态栏文字颜色和图标进行修改 window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } setStatusTextColor(true); } /** * 设置状态栏文字色值为深色调 * @param useDart 是否使用深色调 */ private void setStatusTextColor(Boolean useDart) { if (useDart) { if (isFlyme()){ processFlyMe(useDart); }else if (isMIUI()){ processMIUI(useDart); }else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); }else { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);//实现状态栏图标和文字颜色为暗色 } } } } private void processFlyMe(Boolean isLightStatusBar) { WindowManager.LayoutParams lp = window.getAttributes(); try { // Class instance = getClass().forName("android.view.WindowManager\$LayoutParams"); 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) { e.printStackTrace(); } } /** * 改变小米的状态栏字体颜色为黑色, 要求MIUI6以上 lightStatusBar为真时表示黑色字体 */ private void processMIUI(Boolean lightStatusBar) { Class clazz = window.getClass(); try { int darkModeFlag; // val layoutParams = Class.forName("android.view.MiuiWindowManager\$LayoutParams") Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams"); Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE"); darkModeFlag = field.getInt(layoutParams); // val extraFlagField = clazz.getMethod("setExtraFlags", Int::class.javaPrimitiveType, Int::class.javaPrimitiveType) // extraFlagField.invoke(window, if (lightStatusBar) darkModeFlag else 0, darkModeFlag) Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class); extraFlagField.invoke(window,lightStatusBar?darkModeFlag :0,darkModeFlag); } catch (Exception ignored) { ignored.printStackTrace(); } } }