【Launcher3】默认壁纸的设置

系统默认壁纸的存放路径:frameworks/base/core/res/res/drawable 下
图片文件名:default_wallpaper

查看代码中对默认壁纸图片的引用
这里写图片描述

有关java代码在WallpaperManager中

public static InputStream openDefaultWallpaper(Context context) {
        final String path = SystemProperties.get(PROP_WALLPAPER);
        if (!TextUtils.isEmpty(path)) {
            final File file = new File(path);
            if (file.exists()) {
                try {
                    return new FileInputStream(file);
                } catch (IOException e) {
                    // Ignored, fall back to platform default below
                }
            }
        }
        return context.getResources().openRawResource(
                com.android.internal.R.drawable.default_wallpaper);
}

返回的是默认图片文件的输入流
在代码中可以看到当系统配置文件中对相关属性进行文件路径的设置后,返回的是对应文件的输入流,否则才返回资源文件下的默认壁纸图片的输入流。

public Drawable getBuiltInDrawable(int outWidth, int outHeight,
boolean scaleToFit, float horizontalAlignment, float verticalAlignment)
中通过获取输入流对壁纸进行绘制
【Launcher3】默认壁纸的设置_第1张图片
通过Bitmap对象来接收壁纸图片
【Launcher3】默认壁纸的设置_第2张图片
通过bitmap对象的属性,进行绘制,并返回相应的drawable对象

在Launcher中得到drawable对象

packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java:282:            Drawable defaultWallpaper = WallpaperManager.getInstance(a).getBuiltInDrawable(
packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java:1081:            Drawable wallpaperDrawable = WallpaperManager.getInstance(this).getBuiltInDrawable(

获取默认壁纸信息的具体方法。
【Launcher3】默认壁纸的设置_第3张图片

你可能感兴趣的:(android开发)