流量型网站昆明建设网站的公司
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:28
当前位置: 首页 > news >正文
流量型网站,昆明建设网站的公司,2018年靖边建设项目招投标网站,wordpress服务器镜像ro.wallpaper.fixsize这个节点应该是RK这边导入的#xff0c;可以通过追这个节点的代码查看具体的实现方式#xff1b; 最近在开7.0的坑#xff0c;遇到了一些小问题#xff0c;记录一下。很大可能这个问题只是我这个芯片的代码上才存在的#xff0c;不过殊途同归啦。 第…ro.wallpaper.fixsize这个节点应该是RK这边导入的可以通过追这个节点的代码查看具体的实现方式 最近在开7.0的坑遇到了一些小问题记录一下。很大可能这个问题只是我这个芯片的代码上才存在的不过殊途同归啦。 第一个问题就是我们增加内置可选壁纸选择这些壁纸后进行设置会发现拉伸很明显。通过增加打印log发现 diff –git a/src/com/android/wallpaperpicker/WallpaperCropActivity.java b/src/com/android/wallpaperpicker/WallpaperCropActivity.java old mode 100644 new mode 100755 index bdb601b..67d1551 — a/src/com/android/wallpaperpicker/WallpaperCropActivity.javab/src/com/android/wallpaperpicker/WallpaperCropActivity.java-337,15 337,22 public class WallpaperCropActivity extends Activity implements Handler.CallbackPoint inSize mCropView.getSourceDimensions();Point outSize WallpaperUtils.getDefaultWallpaperSize(getResources(),getWindowManager());android.util.Log.d(LOGTAG,inSize.x inSize.x inSize.y inSize.youtSize.x outSize.x outSize.y outSize.y);RectF crop Utils.getMaxCropRect(inSize.x, inSize.y, outSize.x, outSize.y, false);// Passing 0, 0 will cause launcher to revert to using the// default wallpaper sizeCropAndFinishHandler onEndCrop new CropAndFinishHandler(new Point(0, 0),shouldFadeOutOnFinish);CropAndSetWallpaperTask cropTask new CropAndSetWallpaperTask(streamProvider, this, crop, streamProvider.getRotationFromExif(this),outSize.x, outSize.y, onEndCrop);DialogUtils.executeCropTaskAfterPrompt(this, cropTask, getOnDialogCancelListener());} 我们的壁纸尺寸是1024*600log打印的inSize都是正确的但是outSize却变成了1200*1024了由此产生了壁纸设置后有拉伸的情况。 因此问题就是出在这个Size的变化上我们继续跟踪源码会发现 diff –git a/src/com/android/wallpaperpicker/WallpaperUtils.java b/src/com/android/wallpaperpicker/WallpaperUtils.java old mode 100644 new mode 100755 index 1532190..a4d88d7 — a/src/com/android/wallpaperpicker/WallpaperUtils.javab/src/com/android/wallpaperpicker/WallpaperUtils.java-137,7 137,7 public final class WallpaperUtils {// We need to ensure that there is enough extra space in the wallpaper// for the intended parallax effects
- final int defaultWidth, defaultHeight;int defaultWidth, defaultHeight;if (res.getConfiguration().smallestScreenWidthDp 720) {defaultWidth (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));defaultHeight maxDim;-145,6 145,11 public final class WallpaperUtils {defaultWidth Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);defaultHeight maxDim;}android.util.Log.d(WallpaperCropActivity, res.getConfiguration().smallestScreenWidthDp res.getConfiguration().smallestScreenWidthDp defaultWidth defaultWidthminDim minDim maxDim maxDim);defaultWidth maxDim;defaultHeight minDim;sDefaultWallpaperSize new Point(defaultWidth, defaultHeight);}return sDefaultWallpaperSize; 问题的根源就是这个defaultWidth和defaultHeight啦。继续打印log发现maxDim和minDim就是我们正确的壁纸尺寸这两个变量都是final的更改下修饰符同时将最终设置的尺寸更改为正确的辣么设置的壁纸的拉伸问题就暂时解决了。 第二个问题就是设置sd卡中的图片作为壁纸这个东西源码分析的过程比较复杂。可以通过dumpsys wallpaper以及dumpsys SurfaceFlinger来查看图片的设置尺寸。更改的地方涉及三处。分别是launcher3、framework/base/core以及SystemUI。 packages/apps/Launcher3 diff –git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 38545e2..ecd3ad6 100644 — a/src/com/android/launcher3/InvariantDeviceProfile.javab/src/com/android/launcher3/InvariantDeviceProfile.java-177,7 177,7 public class InvariantDeviceProfile {(int) (largeSide * wallpaperTravelToScreenWidthRatio(largeSide, smallSide)),largeSide);} else {
- defaultWallpaperSize new Point(Math.max(smallSide * 2, largeSide), largeSide);defaultWallpaperSize new Point(largeSide, largeSide);}}frameworks/base — a/core/java/android/app/WallpaperManager.javab/core/java/android/app/WallpaperManager.java-55,6 55,7 import android.os.SystemProperties;import android.os.UserHandle;import android.text.TextUtils;import android.util.Log; import android.view.WindowManager;import android.view.WindowManagerGlobal;import libcore.io.IoUtils;-310,7 311,7 public class WallpaperManager {mCachedWallpaper null;mCachedWallpaperUserId 0;try {
- mCachedWallpaper getCurrentWallpaperLocked(userId);mCachedWallpaper getCurrentWallpaperLocked(context,userId);mCachedWallpaperUserId userId;} catch (OutOfMemoryError e) {Log.w(TAG, No memory load current wallpaper, e);-342,7 343,7 public class WallpaperManager {}}- private Bitmap getCurrentWallpaperLocked(int userId) {private Bitmap getCurrentWallpaperLocked(Context context,int userId) {if (mService null) {Log.w(TAG, WallpaperService not running);return null;-354,7 355,15 public class WallpaperManager {params, userId);if (fd ! null) {try {WindowManager mWindowManager (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);int wW mWindowManager.getDefaultDisplay().getWidth();int wH mWindowManager.getDefaultDisplay().getHeight();BitmapFactory.Options options new BitmapFactory.Options();options.inJustDecodeBounds true;BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor(), null, options);options.inSampleSize calculateInSampleSize(options, wW,wH);options.inJustDecodeBounds false;return BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor(), null, options);} catch (OutOfMemoryError e) {-369,11 378,30 public class WallpaperManager {return null;} private int calculateInSampleSize(BitmapFactory.Options options,int reqWidth, int reqHeight){int width options.outWidth;int height options.outHeight;int inSampleSize 1;if (width reqWidth height reqHeight){int widthRatio Math.round((float) width / (float) reqWidth);int heightRatio Math.round((float) width / (float) reqWidth);inSampleSize Math.max(widthRatio, heightRatio);}return inSampleSize;} private Bitmap getDefaultWallpaper(Context context, SetWallpaperFlags int which) {WindowManager mWindowManager (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);int wW mWindowManager.getDefaultDisplay().getWidth();int wH mWindowManager.getDefaultDisplay().getHeight();InputStream is openDefaultWallpaper(context, which);if (is ! null) {try {BitmapFactory.Options options new BitmapFactory.Options();options.inJustDecodeBounds true;BitmapFactory.decodeStream(is, null, options);options.inSampleSize calculateInSampleSize(options, wW,wH);options.inJustDecodeBounds false;return BitmapFactory.decodeStream(is, null, options);} catch (OutOfMemoryError e) {Log.w(TAG, Cant decode stream, e);diff –git a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java index c88931d..fecc47e 100755 — a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.javab/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java-229,14 229,15 public class ImageWallpaper extends WallpaperService {surfaceHeight Math.max(displayInfo.logicalHeight, mBackgroundHeight);}- if (FIXED_SIZED_SURFACE) {//Log.d(TAG,—-surfaceWidth surfaceWidth surfaceHeight surfaceHeight);/*if (FIXED_SIZED_SURFACE) {// Used a fixed size surface, because we are special. We can do// this because we know the current design of window animations doesnt// cause this to break.surfaceHolder.setFixedSize(surfaceWidth, surfaceHeight);mLastRequestedWidth surfaceWidth;mLastRequestedHeight surfaceHeight;
- } else {} else*/ {surfaceHolder.setSizeFromLayout();}return hasWallpaper;
- 上一篇: 流量网站制作网站备案有什么风险
- 下一篇: 流媒体网站建设方案建网站为什么每年都要续费
相关文章
-
流量网站制作网站备案有什么风险
流量网站制作网站备案有什么风险
- 技术栈
- 2026年03月21日
-
流量统计网站推广法国外用的网站
流量统计网站推广法国外用的网站
- 技术栈
- 2026年03月21日
-
流量对网站排名的影响因素网站品牌栏目建设情况
流量对网站排名的影响因素网站品牌栏目建设情况
- 技术栈
- 2026年03月21日
-
流媒体网站建设方案建网站为什么每年都要续费
流媒体网站建设方案建网站为什么每年都要续费
- 技术栈
- 2026年03月21日
-
柳市网站托管山东省住房和城乡建设厅网站定额站
柳市网站托管山东省住房和城乡建设厅网站定额站
- 技术栈
- 2026年03月21日
-
柳州城乡建设部网站首页平面设计接单赚钱平台
柳州城乡建设部网站首页平面设计接单赚钱平台
- 技术栈
- 2026年03月21日
