wallpaper 图片小不能铺满桌面
2015-09-01 17:48
246 查看
当用户自定义壁纸的时候,如果采用了分辨率比较小的图片,就会导致铺不满屏幕,会留下黑影
解决思路:
根据平板的分辨率进行适应,如果图片的分辨率符合显示的分辨率则不做处理,否则 将图片进行相应的拉伸
关键点文件:/data/system/wallpaper_info.xml
每次更换壁纸,所对应的分辨率就会写在该文件之中
--- a/android/frameworks/base/services/java/com/android/server/WallpaperManagerService.java
+++ b/android/frameworks/base/services/java/com/android/server/WallpaperManagerService.java
@@ -663,8 +663,16 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
height = Math.max(height, displaySize.y);
if (width != wallpaper.width || height != wallpaper.height) {
- wallpaper.width = width;
- wallpaper.height = height;
+ // wallpaper.width = width;
+ // wallpaper.height = height;
+ if(width < 1424 || height < 1280){
+ wallpaper.width = 1424;
+ wallpaper.height = 1280;
+ }else{
+ wallpaper.width = width;
+ wallpaper.height = height;
+
+ }
saveSettingsLocked(wallpaper);
if (mCurrentUserId != userId) return; // Don't change the properties now
if (wallpaper.connection != null) {
@@ -1160,11 +1168,16 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
// We always want to have some reasonable width hint.
int baseSize = getMaximumSizeDimension();
+
+ if (DEBUG) Slog.v(TAG, "baseSize=== "+baseSize+" wallpaper.width= "+ wallpaper.width+" wallpaper.height== "+wallpaper.height);
if (wallpaper.width < baseSize) {
- wallpaper.width = baseSize;
+ //wallpaper.width = baseSize;
+ wallpaper.width =1424;
}
if (wallpaper.height < baseSize) {
- wallpaper.height = baseSize;
+ // wallpaper.height = baseSize*2;
+
+ wallpaper.height = 1280;
}
}
diff --git a/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java b/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
index 561c4bb..14d2e41 100644
--- a/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
+++ b/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
@@ -812,10 +812,14 @@ public class WallpaperCropActivity extends Activity {
int savedHeight = sharedPrefs.getInt(WALLPAPER_HEIGHT_KEY, defaultWallpaperSize.y);
if (savedWidth != wallpaperManager.getDesiredMinimumWidth() ||
savedHeight != wallpaperManager.getDesiredMinimumHeight()) {
+ if(savedWidth < 1424 || savedHeight <1280){
+
+ wallpaperManager.suggestDesiredDimensions(1424, 1280);
+}else{
wallpaperManager.suggestDesiredDimensions(savedWidth, savedHeight);
}
}
-
+}
protected static RectF getMaxCropRect(
int inWidth, int inHeight, int outWidth, int outHeight, boolean leftAligned) {
RectF cropRect = new RectF();
解决思路:
根据平板的分辨率进行适应,如果图片的分辨率符合显示的分辨率则不做处理,否则 将图片进行相应的拉伸
关键点文件:/data/system/wallpaper_info.xml
每次更换壁纸,所对应的分辨率就会写在该文件之中
--- a/android/frameworks/base/services/java/com/android/server/WallpaperManagerService.java
+++ b/android/frameworks/base/services/java/com/android/server/WallpaperManagerService.java
@@ -663,8 +663,16 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
height = Math.max(height, displaySize.y);
if (width != wallpaper.width || height != wallpaper.height) {
- wallpaper.width = width;
- wallpaper.height = height;
+ // wallpaper.width = width;
+ // wallpaper.height = height;
+ if(width < 1424 || height < 1280){
+ wallpaper.width = 1424;
+ wallpaper.height = 1280;
+ }else{
+ wallpaper.width = width;
+ wallpaper.height = height;
+
+ }
saveSettingsLocked(wallpaper);
if (mCurrentUserId != userId) return; // Don't change the properties now
if (wallpaper.connection != null) {
@@ -1160,11 +1168,16 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
// We always want to have some reasonable width hint.
int baseSize = getMaximumSizeDimension();
+
+ if (DEBUG) Slog.v(TAG, "baseSize=== "+baseSize+" wallpaper.width= "+ wallpaper.width+" wallpaper.height== "+wallpaper.height);
if (wallpaper.width < baseSize) {
- wallpaper.width = baseSize;
+ //wallpaper.width = baseSize;
+ wallpaper.width =1424;
}
if (wallpaper.height < baseSize) {
- wallpaper.height = baseSize;
+ // wallpaper.height = baseSize*2;
+
+ wallpaper.height = 1280;
}
}
diff --git a/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java b/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
index 561c4bb..14d2e41 100644
--- a/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
+++ b/android/packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperCropActivity.java
@@ -812,10 +812,14 @@ public class WallpaperCropActivity extends Activity {
int savedHeight = sharedPrefs.getInt(WALLPAPER_HEIGHT_KEY, defaultWallpaperSize.y);
if (savedWidth != wallpaperManager.getDesiredMinimumWidth() ||
savedHeight != wallpaperManager.getDesiredMinimumHeight()) {
+ if(savedWidth < 1424 || savedHeight <1280){
+
+ wallpaperManager.suggestDesiredDimensions(1424, 1280);
+}else{
wallpaperManager.suggestDesiredDimensions(savedWidth, savedHeight);
}
}
-
+}
protected static RectF getMaxCropRect(
int inWidth, int inHeight, int outWidth, int outHeight, boolean leftAligned) {
RectF cropRect = new RectF();
相关文章推荐
- 55.iOSwebview cache 实现UIwebview离线缓存
- 56.使用NSURLProtocol实现UIWebView的离线缓存-转载
- datagrid 显示多级复杂表头
- HDU——2289 Cup
- Vi编辑命令
- 新手写博客
- 防止按钮重复点击
- 通过Ajax实现不显示登录框的IIS-Windows集成身份验证登录
- Android用户界面优化-Android SlidingMenu菜单栏程序设计开发
- SVN还原项目到某一版本
- 【Java】深入理解JVM内存模型
- wamp下Apache2.4.x局域网访问403的解决办法
- css 中div class
- 图层的基本使用 自定义图层 图层属性
- php事件钩子
- 【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】
- 内存管理和 Block
- nyoj 502 筹建工程【最小生成树】
- IOS判断手机设备是否支持照相功能
- canvas