最近闲来无事, 准备学学android开发, 思来想去决定就写个pixiv日榜的壁纸设置app吧, 纯列表展示, 应该难度不大, 结果不出所料, 最难的果然还是壁纸设置方面, 踩了一点坑, 现在总结一下
设置壁纸, 图片被缩放(一般是被放大, 谁会用一张小图去做壁纸呢)
这种情况是因为没有对壁纸进行处理导致的, 需要提前进行壁纸缩放
设置壁纸过后, 某些手机(比如诺基亚), 会变成滚动壁纸, 带有黑边(可能是错误的缩放导致的)
使用wallpaperManager.getDesiredMinimumHeight()的高度, 配合设备的宽度对图片进行缩放, 使图片宽度和屏幕宽度保持一致, 让图片无法滚动
设置壁纸过后, 可能出现左右白边的问题
这种情况一般是因为图片宽高比例过大, 图片太高, 在按照高度缩放过后, 图片宽度小于屏幕宽度导致的. 一般只需要在计算缩放比例过后, 使用比例去计算缩放过后的图片宽度, 如果宽度小于屏幕宽度, 则对缩放比例进行调整即可
1 2 3 4 5 6 7 8 9 |
//bitmap就是你自己需要设置的图片数据 //wh为设备的宽高信息wh[0]=width, wh[1]=height, 示例代码只用到了width int wmanger_height = wallpaperManager.getDesiredMinimumHeight(); float ratio = (float) wmanger_height / (float) bitmap.getHeight(); if (bitmap.getWidth()*ratio < wh[0]){ //如果带入缩放比例计算过后发现图片宽度小于设备宽度, 则对缩放比例进行微调 ratio = ratio * (wh[0]/(bitmap.getWidth()*ratio)); } |