设置statusBar透明兼容4.4 / 5.x / 6.x

本文介绍了一个适用于有图片为头部页面的Android应用中,如何通过设置状态栏透明性来实现跨Android版本的兼容性。特别针对Android 4.4、5.x、6.x版本进行了代码实现,确保应用在不同版本的设备上都能正常显示顶部状态栏,提升用户体验。
   /**
     * 设置statusBar透明兼容4.4 / 5.x / 6.x
     * 适用于有图片为头部的页面
     * @param activity flag_status:0表示取消,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 表示透
     */
    public static void setStatusBarTranslucentCompat(Activity activity) {
        if(Build.VERSION.SDK_INT <  Build.VERSION_CODES.KITKAT)
            return;

        Window window = activity.getWindow();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        }else{
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
    }

package com.example.webview; import android.webkit.JavascriptInterface; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.example.lc_print_sdk.PrintUtil; import android.bld.print.configuration.PrintConfig; import android.graphics.drawable.BitmapDrawable; import android.graphics.Bitmap; import utils.BitmapUtils; public class MainActivity extends AppCompatActivity { /** * 打印对象 */ protected PrintUtil printUtil; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); StatusBar statusBar = new StatusBar(MainActivity.this); //设置颜色为半透明 statusBar.setColor(R.color.translucent); //设置颜色为透明 statusBar.setColor(R.color.transparent); //隐藏状态栏 statusBar.hide(); setContentView(R.layout.activity_main); WebView webView=(WebView)findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient()); webView.addJavascriptInterface(new WebAppInterface(), "AndroidInterface"); //测试网络跳转,确保跳转到另一个网页时仍然在当前WebView显示 webView.loadUrl("http://10.20.200.241:23340/#/"); webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); printUtil=PrintUtil.getInstance (this);//获取实例//步骤2:设置打印结果回调监听 } public class WebAppInterface { @JavascriptInterface public void testPrint(String username) { //步骤1:获取打印示例 printUtil.printEnableMark (false);//关闭黑标 printUtil.printConcentration (25);//打印浓度 // //步骤4:打印文本 // printUtil.printText ("文本");//打印文本 // printUtil.printLine (4);//打印行数 // //步骤5:走纸 // printUtil.start ();//开始走纸 //标题 printUtil.printText(PrintConfig.Align.ALIGN_CENTER, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, "------------------------------------------------------\n"); printUtil.printText(PrintConfig.Align.ALIGN_CENTER, PrintConfig.FontSize.TOP_FONT_SIZE_LARGE, true, true, getString(R.string.label_tmp_text1) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_CENTER, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, "------------------------------------------------------\n"); printUtil.printLine(1); //道路名称 printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text2) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text3) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text4) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text5) + "\n"); //车牌号 printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_LARGE, true, false, getString(R.string.label_tmp_text6) + "\n"); //道路名称 printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text7) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text8) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text9) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text10) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_LEFT, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, getString(R.string.label_tmp_text11) + "\n"); printUtil.printText(PrintConfig.Align.ALIGN_CENTER, PrintConfig.FontSize.TOP_FONT_SIZE_MIDDLE, false, false, "------------------------------------------------------\n"); WebView webView=(WebView)findViewById(R.id.webview); 代码webview报错
最新发布
11-08
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值