系统WallPaper图片可以设置成屏幕大小的图吗?

系统默认的Wallpaper图片都是两倍屏宽,主要有2个目的:
1.壁纸可以随着Launcher Workspace的滑动而滑动;
2.屏幕横屏时,设置了show wallpaper flag的应用背景可以正常显示。
如果将Wallpaper宽高修改为与屏幕宽高相同,就会造成如下隐患:
1. Launcher Workspace的背景会被拉伸,表现不美观;
2. 设置了show wallpaper flag的应用背景在横屏时显示不全(右边会显示黑屏,例如recent界面)。
隐患1可以通过修改代码解决(下面的代码就是为了解决隐患1),隐患2也是存在的。因此不建议这样修改。

M版本:

1.  请在WallpaperUtils.java的getDefaultWallpaperSize方法中,请找到如下代码:

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;
}
请先确认代码走哪个分支(这与手机分辨率有关),然后把defaultWidth 和defaultHeight 改为屏幕宽高。修改方法
如下(以else分支示例):
Point realSize = new Point();
windowManager.getDefaultDisplay().getRealSize(realSize);
if (isScreenLarge(res)) {
defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
defaultHeight = maxDim;
} else {
defaultWidth = realSize.x;
defaultHeight = realSize.y;
}

KK/L版本:

1. 请在WallpaperCropActivity.java的getDefaultWallpaperSize方法中,请找到如下代码:

if (isScreenLarge(res)) {
defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
defaultHeight = maxDim;
} else {
defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);
defaultHeight = maxDim;
}
请先确认代码走哪个分支(这与手机分辨率有关),然后把defaultWidth 和defaultHeight 改为屏幕宽高。修改方法
如下(以else分支示例):
Point realSize = new Point();
windowManager.getDefaultDisplay().getRealSize(realSize);
if (isScreenLarge(res)) {
defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
defaultHeight = maxDim;
} else {
defaultWidth = realSize.x;
defaultHeight = realSize.y;
}

2. 请找到WallpaperManagerService.java的loadSettingLocked方法,去掉如下代码:

if (wallpaper.width < baseSize) {
wallpaper.width = baseSize;
}

KK之前版本:

请修改packages\apps\Launcher2\src\com\android\launcher2\Workspace.java的setWallpaperDimension()方法,如下:

protected void setWallpaperDimension() {
Point minDims = new Point();
Point maxDims = new Point();
mLauncher.getWindowManager().getDefaultDisplay().getCurrentSizeRange(minDims, maxDims);
final int maxDim = Math.max(maxDims.x, maxDims.y);
final int minDim = Math.min(minDims.x, minDims.y);
//mtk add start
Display disp = mLauncher.getWindowManager().getDefaultDisplay();
DisplayMetrics mDiaplayMetrics = new DisplayMetrics();
disp.getRealMetrics(mDiaplayMetrics);
final int dispW = mDiaplayMetrics.widthPixels;
final int dispH = mDiaplayMetrics.heightPixels;
//mtk add end
// We need to ensure that there is enough extra space in the wallpaper for the intended
// parallax effects
if (LauncherApplication.isScreenLarge()) {
mWallpaperWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
mWallpaperHeight = maxDim;
} else {
//mtk add start
mWallpaperWidth =dispW;//Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);
mWallpaperHeight = dispH;//maxDim;
//mtk add end
}
new Thread("setWallpaperDimension") {
public void run() {
mWallpaperManager.suggestDesiredDimensions(mWallpaperWidth, mWallpaperHeight);
}
}.start();

系统WallPaper图片可以设置成屏幕大小的图吗?相关推荐

  1. 设置笔记本桌面计算机,自己喜欢的图片怎么设置成电脑桌面?

    当你厌倦了系统自带的桌面图片时,当我们外出旅游拍到绝美风景或是自己很喜欢的照片时,总想把它设置成电脑的桌面,那么自己喜欢的图片怎么设置成电脑桌面?下面小编就为大家介绍一下,来看看吧! 下面小编就以wi ...

  2. 解决 win10 更新系统或恢复出厂设置之后屏幕亮度无法调节的问题

    解决 win10 更新系统或恢复出厂设置之后屏幕亮度无法调节的问题 目标人群 以前在电脑上装过 向日葵远程控制软件 的小伙伴们. 引言 笔者前段时间将电脑(荣耀magicbook 2018)重置之后发 ...

  3. [Android] Eclipse Android中设置模拟器屏幕大小几种方法

    在Eclipse Android中设置模拟器屏幕大小是本文要介绍的内容,主要是来了解并学习Eclipse Android中模拟器的设置,具体关于Eclipse Android内容的详解来看本文  . ...

  4. 图片怎么压缩成指定大小?如何将照片变成规定大小?

    如何压缩png图片200k以下?推荐使用压缩图的图片压缩成指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下-压缩图)功能来压缩png图片到想要的大小,下面是具体步骤. 1.使用浏览器打开压缩图 ...

  5. 如何让电脑不进入黑屏状态,教程在这里,WIN10系统下电脑怎么设置成不黑屏

    电脑如何才能不黑屏即不进入休眠模式呢,小编今天来教大家如何关闭电脑上的休眠模式设置: 第一步.小编电脑装的是WIN10系统,这里就以WIN10系统为例,首先点击电脑屏幕左下角的WINDOWS图标即&q ...

  6. 安卓+ios系统--手机端页面自适应手机屏幕大小,禁止手动放大和缩小VUE

    项目需求 手机端,页面自适应手机屏幕大小,不能手动放大和缩小. 1.代码 在index.html中加入下面的代码: <!-- 手机端页面自适应手机大小,禁止手动放大 --> <met ...

  7. 010 、JVM实战总结: 动手实验:亲自感受一下线上系统部署时如何设置JVM内存大小

    1.前文回顾         新生代里内存不够了,就会触发一次Minor GC,当他成为是十多岁的"老年人"的时候,就会被转移到老年代里去 2.跟JVM内存相关的几个核心参数图解 ...

  8. html图片怎么设置热区不大小,店铺装修技巧之图片尺寸大全!收藏必备!随时可查看!...

    原标题:店铺装修技巧之图片尺寸大全!收藏必备!随时可查看! 在店铺装修过程中,对于不同的不同位置的图片尺寸要求不同,当图片过大,会自动被裁剪掉,而图片过小,则会周围留下空白,这样的用户体验是极其不好的 ...

  9. html文件设置成mac屏保,Mac怎么设置屏幕保护?如何设置Mac屏幕保护程序?

    Mac电脑如何设置屏幕保护程序?屏保是我们显示个性的重要途径,也是保护我们的电脑安全的一个重要方法.MAC用户想要修改自己的屏保该怎么办呢?今天PC6小编就教大家如何在Mac系统下设置桌面背景以及屏幕 ...

最新文章

  1. 傅立叶变换学习(一)初步认识傅立叶变换
  2. 同步 GIT@OSC 实现MARKDOWN文件发布或更新到CSDN博客中
  3. sql 按时间二段排序
  4. asp.net 使用my97 datepicker实现前后两个日期的范围界定
  5. 《和平精英》崩了 官方回应:受运营商网络波动影响 正在修复
  6. 模块打包之CommonJS与ES6模块比较初探
  7. [转]史上最全Eclipse优化
  8. 两个很棒的爬虫智能解析库,通配大部分网页!
  9. 大牛直播sdk简单播放端demo使用
  10. Java集合、泛型和枚举
  11. ZR1012 Zbox loves keyboard (dp)
  12. (Python)使用SMTP发送QQ邮件
  13. 充电桩通过WiFi付费和管理方案
  14. windows下安装php环境(wampserver)
  15. python图片旋转成水平_python之批量使图片水平翻转
  16. comsol临时文件夹中有不支持的字符_错误:发生错误。请查看日志文件 C:\Users......
  17. 2021年春季ACM训练赛第4场
  18. 跨境自由职业者如何把境外的PayPal收款,方便快捷的汇入大陆的银联卡?
  19. 国内开源网店的那些事
  20. 【济宁seo网站推广】seo外链推广对于网站的意义

热门文章

  1. 在vue中制作倒计时功能
  2. CSS的四种定位方式
  3. 阿里/腾讯/头条/京东...滴滴员工,一年究竟能挣多少钱?
  4. 全球最大的 OpenStack 集群背后:中国移动的开源之旅
  5. 逆天好用丨打开新世界的大门
  6. ekf 传感器数据融合
  7. 吐血奉献精心整理的一大波数据集
  8. 分支限界法TSP问题
  9. 自定义ZYNQ的PL端数据处理器,通过DMA等进行交互(附GitHub源码)
  10. CVBS接口,PAL制式信号