天气widget,一个带新闻,天气的时钟Widget(二)---皮肤包篇

二。皮肤包的导入与皮肤包的选择
1,皮肤包的导入
1)遍历存储卡skinzip文件夹下的zip包
image一个带新闻,天气的时钟Widget(二)---皮肤包篇天气widget
StringBuilder buffer = new StringBuilder();
        // 检查是否存在存储卡         if (Environment.getExternalStorageState().equals(                 Environment.MEDIA_REMOVED)) {
            Toast.makeText(this, "請插入存儲卡!", 2000).show();             return;         }
        String targetDir = buffer                 .append(Environment.getExternalStorageDirectory())                 .append("/skinzip/").toString();
        File entryDir = new File(targetDir);
       
        // 检查皮肤包路径,不存在就创建该文件夹         if (!entryDir.exists()) {             entryDir.mkdirs();             Toast.makeText(this, "皮肤包不存在!", 2000).show();             return;         }
        ZipFileUtils zfu = new ZipFileUtils();         // Log.d("myout", targetDir);         zfu.GetFiles(targetDir, "zip", false);
        lstFile = zfu.getLstFile();
        lstFileName = zfu.getLstFileName();
        if (lstFile.size() < 1) {             Toast.makeText(this, "皮肤包不存在!", 2000).show();             btnLoadSkin.setEnabled(false);             return;         }
        Log.d("myout", String.valueOf(lstFile.size()));         for (int i = 0; i < lstFile.size(); i++) {             Log.d("myout", lstFile.get(i));
        }
        lvloadskin.setAdapter(new ArrayAdapter(this,                 android.R.layout.simple_list_item_single_choice, lstFileName));
遍历目录的方法
public void GetFiles(String Path, String Extension, boolean IsIterative) // 搜索目录,扩展名,是否进入子文件夹     {
        File[] files = new File(Path).listFiles();
        for (int i = 0; i < files.length; i++) {             File f = files[i];             if (f.isFile()) {
                if (f.getPath()                         .substring(f.getPath().length() - Extension.length())                         .equals(Extension)) // 判断扩展名                 {
                    lstFile.add(f.getPath());                     lstFileName.add(f.getName());
                }                 // if (!IsIterative)                 // break;
            } else if (f.isDirectory() && f.getPath().indexOf("/.") == -1) // 忽略点文件(隐藏文件/文件夹)             {
                GetFiles(f.getPath(), Extension, IsIterative);             }
        }
    }
 
 
public void GetDirNameList(String Path) {
        File file = new File(Path);
        if (!file.exists()) {
            file.mkdirs();         }
        File[] files = new File(Path).listFiles();
        for (int i = 0; i < files.length; i++) {             File f = files[i];             System.out.println(Path);
            if (f.isDirectory()) {
                lstDirName.add(f.getName());                 System.out.println(f.getName());
            }
        }
    }
2,皮肤包的选择
从导入的皮肤包内选择皮肤
imageimage一个带新闻,天气的时钟Widget(二)---皮肤包篇天气widget
是通过ImageSwitcher和Gallery来实现,选择皮肤然后存储在SharedPreferences里,在widget更新是同步更新皮肤
代码就没什么好贴的
用的着直接看源码吧
源码在群共享里:72349065,欢迎来一起交流学习
Tags:  漂亮天气皮肤包 墨迹天气皮肤包 天气widget

延伸阅读

最新评论

发表评论