美文网首页
Android 解决小米手机添加图片水印后显示黑边的问题

Android 解决小米手机添加图片水印后显示黑边的问题

作者: 我爱田Hebe | 来源:发表于2023-01-09 09:35 被阅读0次

背景

  • 由于选择图片后需要需要在图片上添加logo,经纬度坐标,天气、时间等内容(图片水印)

  • 测试反馈在小米手机上选择图片上传后有图片在右边和下边有一条黑边 具体查看下图

  • 调用代码如下使用O、V、H、及荣耀手机验证,并没有这个现象,应该是小米魔改系统锅了
 /**
  * 绘制水印图片
  *
  * @param src         原图
  * @param watermark   水印图片
  * @param paddingLeft 水印图片 向左距离
  * @param paddingTop  水印图片 向上距离
  * @return 添加水印后的图片
  */
 private static Bitmap createWaterMaskBitmap(Bitmap src,
                                             Bitmap watermark,
                                             int paddingLeft,
                                             int paddingTop) {
     if (src == null) {
         return null;
     }
     //位图的宽度
     int width = src.getWidth();
     //位图的高度
     int height = src.getHeight();
     //创建一个新的和SRC长度宽度一样的位图
     Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
     //将该图片作为画布
     Canvas canvas = new Canvas(newBitmap);
     //在画布 0,0坐标上开始绘制原始图片
     canvas.drawBitmap(src, 0, 0, null);
     //在画布上绘制水印图片
     canvas.drawBitmap(watermark, paddingLeft, paddingTop, null);
     // 保存
     canvas.save();
     // 存储
     canvas.restore();
     return newBitmap;
 }
  • 虽然是小米的锅,但是问题还是要解决的,不然就是多个bug少块钱了😭,这个黑边的宽度看着有点像StatusBarHeight,

  • 那就把图片中的黑边给减掉,然后用Bitmap的宽度减去statusBar高度,上传保存之后和原图做比较,发现宽高都被多裁切了尺寸

     LogUtils.iTag("状态栏和,导航栏高度->",BarUtils.getStatusBarHeight(),","+BarUtils.getNavBarHeight());
     if (RomUtils.isXiaomi()) {
         //LogUtils.iTag("状态栏和,导航栏高度->",BarUtils.getStatusBarHeight(),","+BarUtils.getNavBarHeight());
         width = width - BarUtils.getStatusBarHeight();
         height = height - BarUtils.getStatusBarHeight();
     }
    

不尽如意解决方案 ,总归是解决了,不是遗留bug😁

遗憾的是没有找到获取这个黑边宽度和高度的方法

     /**
      * 绘制水印图片
      *
      * @param src         原图
      * @param watermark   水印图片
      * @param paddingLeft 水印图片 向左距离
      * @param paddingTop  水印图片 向上距离
      * @return 添加水印后的图片
      */
     private static Bitmap createWaterMaskBitmap(Bitmap src,
                                                 Bitmap watermark,
                                                 int paddingLeft,
                                                 int paddingTop) {
         if (src == null) {
             return null;
         }
         int width = src.getWidth();
         int height = src.getHeight();
 
         //解决小米手机绘制有黑边的问题
         if (RomUtils.isXiaomi()) {
             //LogUtils.iTag("状态栏和,导航栏高度->",BarUtils.getStatusBarHeight(),","+BarUtils.getNavBarHeight());
             width = width - 25;
             height = height - 30;
         }
 
         //创建一个新的和SRC长度宽度一样的位图
         Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
         //将该图片作为画布
         Canvas canvas = new Canvas(newBitmap);
         //在画布 0,0坐标上开始绘制原始图片
         canvas.drawBitmap(src, 0, 0, null);
         //在画布上绘制水印图片
         canvas.drawBitmap(watermark, paddingLeft, paddingTop, null);
         // 保存
         canvas.save();
         // 存储
         canvas.restore();
         return newBitmap;
     }

修复后的图片


作者:JiaAndroid
链接:https://juejin.cn/post/7130421617997381646

相关文章

  • Android 解决小米手机添加图片水印后显示黑边的问题

    背景 由于选择图片后需要需要在图片上添加logo,经纬度坐标,天气、时间等内容(图片水印) 测试反馈在小米手机上选...

  • 解决react-native在小米8出现黑边或者透明边

    问题:小米8等大屏手机出现黑边或者透明边等问题 解决办法:原因是目前小米8和现在各大手机厂商新推出的手机的屏占比越...

  • iOS给图片添加文字水印和图片水印

    加水印的方式有很多,比如给图片添加图片水印、文字水印,或者给视频添加图片水印、文字水印。本文首先讲解如何给图片添加...

  • Adnroid WebView

    Android webView 注意问题 //解决图片不显示 webView.getSettings().setB...

  • Android Mp4视频录制:断点续录与回删

    回顾 在前两篇文章中,已经介绍了在android上录制视频的流程,及使用opengl添加水印、图片等(水印就是图片...

  • 2020-06-29

    各种页面中添加水印,vue添加水印 /* 添加水印函数addWaterMarker str:水印显示的文本内容 *...

  • 真机上下黑边

    iOS真机启动图不显示 上下黑边有黑边 根据不同机型对应响应图片尺寸。 解决方案: 1.检查图片尺寸是否正确。 2...

  • Mac Word添加水印图片后去除页眉横线

    mac上Word添加图片水印后会自动添加页眉页脚,去除方法如下 1.布局-水印,添加图片水印 2.自动添加页眉页脚...

  • Android WebView loadDataWithBase

    因为项目要用WebView加载html片段,其他手机都能正常显示,只有小米手机不显示。记录下花了半天解决的问题。 ...

  • FFMpeg常用指令

    水印篇 1、添加水印ffmpeg官方提供了另外一种添加图片水印的方法在视频右下角的添加图片水印 在视频左下角添加图...

网友评论

      本文标题:Android 解决小米手机添加图片水印后显示黑边的问题

      本文链接:https://www.haomeiwen.com/subject/gkmpcdtx.html