Android 9.0 修改默认壁纸(主壁纸和wapppaper)

一、修改主默认壁纸,在对应的产品目录下,替换原来的壁纸,如

android/device/qcom/{vendor}/overlay-go/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.jpg

 二、替换wallpaper中的默认壁纸,为一个独立的应用,WallpaperPicker

    1、在android/packages/apps/WallpaperPicker/res/values-nodpi/wallpapers.xml 中增加壁纸配置:


    
		test_wallpaper1
		test_wallpaper2
		test_wallpaper3
		test_wallpaper4
		test_wallpaper5
		test_wallpaper6
		test_wallpaper7
		test_wallpaper8
		test_wallpaper9
		test_wallpaper10
    

    2、在 res目录下加入自己的壁纸,如:android/packages/apps/WallpaperPicker/res/drawable-nodpi/

壁纸替换基本已完成,但是很有可能没有达到理想的效果,比如壁纸拉升了,可以修改如下配置:

android/packages/apps/WallpaperPicker/src/com/android/wallpaperpicker/WallpaperUtils.java

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
    public static Point getDefaultWallpaperSize(Resources res, WindowManager windowManager) {
        if (sDefaultWallpaperSize == null) {
            Point realSize = new Point();
            windowManager.getDefaultDisplay().getRealSize(realSize);
            int maxDim = Math.max(realSize.x, realSize.y);
            int minDim = Math.min(realSize.x, realSize.y);

            // We need to ensure that there is enough extra space in the wallpaper
            // for the intended parallax effects
            final int defaultWidth, defaultHeight;
            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;
            }
            sDefaultWallpaperSize = new Point(defaultWidth, defaultHeight);

            sDefaultWallpaperSize =realSize ;// hpe add 
        }

        return sDefaultWallpaperSize;
    }

通过这样修改就到达壁纸不被拉伸的目的。

还有一个需要注意的地方就是,壁纸必须与手机屏幕的分辨率大小一致,比如手机的分辨率是480*960,壁纸的像素必须是480*960。不然放进去会出现拉伸压缩的情况。

你可能感兴趣的:(framework,android)