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 中增加壁纸配置:

<resources>
    <string-array name="wallpapers" translatable="false">
		<item>test_wallpaper1</item>
		<item>test_wallpaper2</item>
		<item>test_wallpaper3</item>
		<item>test_wallpaper4</item>
		<item>test_wallpaper5</item>
		<item>test_wallpaper6</item>
		<item>test_wallpaper7</item>
		<item>test_wallpaper8</item>
		<item>test_wallpaper9</item>
		<item>test_wallpaper10</item>
    </string-array>
</resources>

    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。不然放进去会出现拉伸压缩的情况。

发布了10 篇原创文章 · 获赞 0 · 访问量 2196

猜你喜欢

转载自blog.csdn.net/h1217256980/article/details/103201849