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

it2026-01-07  7

二。皮肤包的导入与皮肤包的选择

1,皮肤包的导入

1)遍历存储卡skinzip文件夹下的zip包

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<String>(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,皮肤包的选择

从导入的皮肤包内选择皮肤

是通过ImageSwitcher和Gallery来实现,选择皮肤然后存储在SharedPreferences里,在widget更新是同步更新皮肤

代码就没什么好贴的

用的着直接看源码吧

源码在群共享里:72349065,欢迎来一起交流学习

转载于:https://www.cnblogs.com/pxue/archive/2011/06/27/2091746.html

相关资源:数据结构—成绩单生成器
最新回复(0)