修改源码如下,这个问题主要原因是没有根据图片实际尺寸设置壁纸大小
public static Point getDefaultWallpaperSize(Resources res, WindowManager windowManager,Activity activity) {        if (sDefaultWallpaperSize == null) {            Point realSize = new Point();            windowManager.getDefaultDisplay().getRealSize(realSize);            int maxDim = Math.max(realSize.x, realSize.y);            int minDim = Math.min(realSize.x, realSize.y);            // We need to ensure that there is enough extra space in the wallpaper            // for the intended parallax effects            final int defaultWidth, defaultHeight;            if (res.getConfiguration().smallestScreenWidthDp >= 720) {                defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));                defaultHeight = maxDim;            } else {                defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);//此处就是屏幕壁纸宽度,这个宽度是写死的,所以图片会被放大拉伸                defaultHeight = maxDim;            }            sDefaultWallpaperSize = new Point(defaultWidth, defaultHeight);        }        return sDefaultWallpaperSize;    }
修改后的代码如下,主要是因为宽度不够导致,增加一个图片宽度int outWidth
public static Point getDefaultWallpaperSize(Resources res, WindowManager windowManager,Activity activity,int outWidth) {        //if (sDefaultWallpaperSize == null) {//注释这个代码            Point realSize = new Point();            windowManager.getDefaultDisplay().getRealSize(realSize);            int maxDim = Math.max(realSize.x, realSize.y);            int minDim = Math.min(realSize.x, realSize.y);            // We need to ensure that there is enough extra space in the wallpaper            // for the intended parallax effects            final int defaultWidth, defaultHeight;            if (res.getConfiguration().smallestScreenWidthDp >= 720) {                defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));                defaultHeight = maxDim;            } else {                //defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);//此处就是屏幕壁纸宽度,这个宽度是写死的,所以图片会被放大拉伸                if(outWidth < minDim){                
                 defaultWidth = minDim;              }else{                 defaultWidth = outWidth;              }              defaultHeight = maxDim;          }          sDefaultWallpaperSize = new Point(defaultWidth, defaultHeight);
//}//注释这个代码
return sDefaultWallpaperSize; }

更多相关文章

  1. Android中调用相册里面的图片并返回:
  2. Android学习笔记(二)android studio基本控件及布局(实现图片查看器)
  3. Android更换RatingBar图片
  4. Android (滑动屏幕切换图片的实现)
  5. android中实现背景图片颜色渐变方法
  6. android缩放图片
  7. Android 实现局部图片滑动指引效果
  8. Android学习教程之九宫格图片展示(13)
  9. Android 7.0调用相机拍照并获取图片路径

随机推荐

  1. iOS中的抽屉菜单
  2. Android如何快速实现打渠道打包
  3. Android客户端与服务器端数据同步
  4. Android(安卓)显示GIF图片实例详解
  5. Android中弹窗中带有Edittext,软键盘遮挡
  6. 记一次Build.gradle引发的ClassNotFound
  7. android中的数据存储方式(二)SQLite
  8. 第3章 UI
  9. 2020上半年百度Android岗(初级到高级)面试
  10. 【Android学习系列】Android- Service总