系统WallPaper图片可以设置成屏幕大小的图吗?
来源:互联网 发布:消费返利系统源码 编辑:程序博客网 时间:2024/06/03 20:25
系统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 startDisplay 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 effectsif (LauncherApplication.isScreenLarge()) {mWallpaperWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));mWallpaperHeight = maxDim;} else {//mtk add startmWallpaperWidth =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();
阅读全文
0 0
- [FAQ10958]系统WallPaper图片可以设置成屏幕大小的图吗?
- 系统WallPaper图片可以设置成屏幕大小的图吗?
- 根据屏幕大小设置显示图片的大小(二)
- UIWebView设置图片的宽度适应屏幕的大小
- Android 根据屏幕的宽度来设置图片的大小,
- ImageView根据屏幕大小动态设置图片的尺寸
- Android4: 设置背景为系统wallpaper
- 给一个控件上面设置图片(drawableTop),并可以设置图片的大小
- iOS-图片可以自适应屏幕大小吗,应该会失真吧?
- libGDX截取超出屏幕大小的图片
- Android动态设置屏幕的大小
- 关于图片的大小设置
- java在label 上设置图片并且可以随便改变大小的方法
- 可以设置裁剪比例和大小的照片图片选择框架
- 设置radiobutton中drawable图片的大小,checkBox应该也可以
- 控制dialog 的大小按屏幕大小的百分比设置
- js 可以控制图片的大小
- 设置窗口运行时的大小为屏幕大小
- Android—( RollViewPager)图片轮播
- CodeForces
- 网易面经(Java开发)
- 数据库与SQL语言 知识点总结
- 如何使用swfobject(中文版)
- 系统WallPaper图片可以设置成屏幕大小的图吗?
- java学习6:商品管理系统例子
- Activity的四种启动模式
- Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- Python 用HTMLParser解析HTML文件
- 从windows上往Linux传文件
- 645. Set Mismatch
- 16:计算线段长度
- Maven学习笔记 -- day02 Maven整合struts2及Maven核心概念、添加插件