--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java
@@ -454,7 +454,8 @@ public class ImageWallpaper extends WallpaperService {
// Center the scaled image
mScale = Math.max(1f, Math.max(dw / (float) mBackground.getWidth(),
dh / (float) mBackground.getHeight()));
- mScale = dw / (float) mBackground.getWidth();
+ //mScale = dw / (float) mBackground.getWidth();
final int availw = dw - (int) (mBackground.getWidth() * mScale);
final int availh = dh - (int) (mBackground.getHeight() * mScale);
int xPixels = availw / 2;
@@ -463,13 +464,16 @@ public class ImageWallpaper extends WallpaperService {
// Adjust the image for xOffset/yOffset values. If window manager is handling offsets,
// mXOffset and mYOffset are set to 0.5f by default and therefore xPixels and yPixels
// will remain unchanged
- final int availwUnscaled = (int)((float)dw/mScale) - mBackground.getWidth();
- final int availhUnscaled = (int)((float)dh/mScale) - mBackground.getHeight();
-
+ final int availwUnscaled = dw - mBackground.getWidth();
+ final int availhUnscaled = dh - mBackground.getHeight();
+ //End
if (availwUnscaled < 0)
- xPixels += (int) (availwUnscaled * (mXOffset - .5f) * mScale + .5f);
+ xPixels += (int) (availwUnscaled * (mXOffset - .5f) + .5f);
if (availhUnscaled < 0)
- yPixels += (int) (availhUnscaled * (mYOffset - .5f) * mScale + .5f);
+ yPixels += (int) (availhUnscaled * (mYOffset - .5f) + .5f);
mOffsetsChanged = false;
if (surfaceDimensionsChanged) {
Android N 固定壁纸大小不拉伸
最新推荐文章于 2023-09-17 14:46:32 发布
本文详细解析了Android系统中ImageWallpaper类的代码修改,重点介绍了如何调整壁纸的缩放比例和位置,以实现更精确的画面显示效果。通过对比不同版本的代码,深入探讨了在不同屏幕尺寸下,壁纸图片的宽度、高度与窗口尺寸之间的计算逻辑,以及如何根据偏移量调整壁纸的位置。
1987

被折叠的 条评论
为什么被折叠?



