天天看點

launcher3增加桌面到桌面桌面清單中

在寫本文之前,首先推薦一篇詳細介紹Launcher3桌面桌面的部落格,部落格連結為:Launcher3--桌面:http://blog.csdn.net/dingfengnupt88/article/details/51833046

本文就不詳細叙述launcher3添加修改桌面的原理了,直接提供一個方法,把您喜歡的圖檔添加到桌面桌面清單中。

/**
     * 增加自定義桌面桌面
     *
     * @param wallpaperPath 桌面桌面路徑檔案夾
     */
    private void addMyWallpaper(String wallpaperPath, ArrayList<WallpaperTileInfo> bundled) {

        try {
            File mWallpaperDir = new File(wallpaperPath);
            if (mWallpaperDir.exists()) {
                if (mWallpaperDir.isDirectory()) {
                    File[] files = mWallpaperDir.listFiles();
                    for (File file : files) {
                        if (!file.isFile()) {
                            continue;
                        }
                        String name = file.getName();
                        int dotPos = name.lastIndexOf('.');
                        String extension = "";
                        if (dotPos >= -1) {
                            extension = name.substring(dotPos);
                            name = name.substring(0, dotPos);
                        }

                        if (!extension.endsWith("png") && !extension.endsWith("jpg")) {
//                    if (!extension.endsWith("jpg")) {
                            // PNG格式會出錯,但設定沒有問題,JPG格式則不會出現出錯日志
                            continue;
                        }

                        File thumbnail = new File(mWallpaperDir, name + extension);
                        String absolutePath = thumbnail.getAbsolutePath();
                        Log.d(TAG, "wallpaper file path name: " + absolutePath);
//                    Bitmap myThumbnail = createMyThumbnail(this, thumbnail.getAbsolutePath(), 0, false);
                        Bitmap myThumbnail = BitmapFactory.decodeFile(thumbnail.getAbsolutePath());
                        bundled.add(new FileWallpaperInfo(thumbnail, new BitmapDrawable(myThumbnail)));
                    }
                }
            } else
                Log.e(TAG, "File path " + wallpaperPath + " not exists");
        }catch (Throwable throwable){
            throwable.printStackTrace();
        }
    }
           

上面這個方法就是通過掃描目标檔案夾,把檔案夾中的圖檔添加到桌面清單中。

該方法可在WallpaperPickerActivity中的findBundledWallpapers方法中執行,這樣就可以添加自己想要的圖檔到桌面清單中。

通過代碼修改桌面預設桌面,添加或删除動态桌面桌面等内容的修改,請仔細閱讀推薦的部落格,裡面對launcher3的桌面有十分詳細的介紹。

繼續閱讀