魅族note(电信版)缩略图显示不正确问题

魅族note(电信版)缩略图显示不正确问题

【问题现象】

     问题现象:

          图片缩略图显示存在多处重复,展示缩略图与原本应该展示的图片不相同。

                  魅族note(电信版)缩略图显示不正确问题_第1张图片

     期待结果:

          展示缩略图与原本应该展示的图片相同,不会出现重复的现象。

【涉及机型】

          厂商:Meizu

          机型:M463C

         SDKAndroid4.4.4

         ROMFlyme OS 4.2Q

         基带:.1.0.2.c1-00096-M8936FAAAANVZM-1

【问题分析】:ROM问题

         问题API:

                   

         首先,我们反编译问题机型framework层代码,发现getThumbnail()函数已经被更改。由于反编译源码,代码结构被混淆,暂时无法正确解析源码。

         但是,我们通过对android原生SDK的分析,我们了解到getThumbnail()获取缩略图主要是两种方式,MICRO_KIND方式是缩略图管理器中获取缩略图;MINI_KIND方式是从数据库中读取文件路径然后压缩原图片得到缩略图。具体原生android framework层源码如下:

 

                   魅族note(电信版)缩略图显示不正确问题_第2张图片

                   魅族note(电信版)缩略图显示不正确问题_第3张图片

                   魅族note(电信版)缩略图显示不正确问题_第4张图片

                  魅族note(电信版)缩略图显示不正确问题_第5张图片

                 

         而我们的问题API恰好是要求采用MICRO_KIND方式来获取缩略图。适配问题的原因也比较明了:厂家修改framework层源码使得thumFile缩略图管理器数据维护不当,从而导致缩略图获取不正确。

【解决方案/规避方案】

         1.首先分析两种获取缩略图的方式:

                  MICRO_KIND方式:先尝试从缩略图数据库中搜索图片,如果不存在对应的缩略图,则直接找到原图片路径,读取原图片,转换为缩略图大小。

                  MINI_KIND方式:直接找到原图片路径,读取原图片,转换为缩略图大小。

         2.这样一来,我们知道MINI_KIND方式是不会导致缩略图对应错误的问题。所以我们适配解决方案也十分明显:在问题机型上,我们建议使用MINI_KIND方式读取缩略图。

         解决方案:

                   魅族note(电信版)缩略图显示不正确问题_第6张图片

         3.测试该解决方案:

         Demo测试解决方案:(适配前,大部分的照片对应的缩略图都是同一个缩略图,缩略图与原图片不匹配)

                   魅族note(电信版)缩略图显示不正确问题_第7张图片

         Demo测试解决方案:(适配后,缩略图显示正常,缩略图与原图片匹配)

                   魅族note(电信版)缩略图显示不正确问题_第8张图片

// 如果觉得不错,记得顶我哦! 顶我!顶我!顶我!



你可能感兴趣的:(Android,魅蓝note,缩略图,显示,不正确,Android,机型适配问题详解,Android)