Android 6.0和7.0 加载同一张图片,结果不同

新手上路,请多包涵

问题描述

Android6.0和7.0 加载一张jpg图片,转换为bitmap, 然后将其保存到本地,用UE比较两张本地图片的2进制,得到的结果不一致。

问题出现的环境背景及自己尝试过哪些方法

(1)利用系统的bitmapFactory 结果也是一样,不一致,
(2)Glide也不行
(3)有个奇怪的现象,4.4、5.0、6.0、8.1 是一样的, 7.0、7.1、8.0结果一致。

相关代码

Picasso.get()
        .load(R.drawable.web_z)
        .config(Bitmap.Config.ARGB_8888)
        .resize(500,400)
        .transform(object : Transformation {
            override fun key(): String = "test"

            override fun transform(source: Bitmap): Bitmap {
                FileUtilTest.save(source, "picasso")
                return source
            }
        }).into(mImageView)
        
 //将bitmap保存到本地       
 object FileUtilTest {
    fun save(bitmap: Bitmap, flag: String) {
        if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED)
        // 判断是否可以对SDcard进行操作
        {      // 获取SDCard指定目录下
            val sdCardDir = Environment.getExternalStorageDirectory().toString() + "/CoolImage/"
            val dirFile = File(sdCardDir)  //目录转化成文件夹
            if (!dirFile.exists()) {                //如果不存在,那就建立这个文件夹
                dirFile.mkdirs()
            }                            //文件夹有啦,就可以保存图片啦
            val file = File(sdCardDir, flag + "_" + System.currentTimeMillis() + ".png")// 在SDcard的目录下创建图片文,以当前时间为其命名
            var out: FileOutputStream? = null
            try {
                out = FileOutputStream(file)
                bitmap.compress(Bitmap.CompressFormat.PNG, 90, out)
                out.flush()
                Log.d("TAG", "_________保存到____sd______指定目录文件夹下____________________")
            } catch (e: Exception) {
                e.printStackTrace()
            } finally {
                if (out != null) {
                    try {
                        out.close()
                    } catch (e: IOException) {
                        e.printStackTrace()
                    }

                }
            }
            Log.d("TAG", "保存已经至" + Environment.getExternalStorageDirectory() + "/CoolImage/" + "目录文件夹下")
        }
    }


}

这种问题,该如何解决?

阅读 1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题