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(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) {2,皮肤包的选择
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());
}
}
}
从导入的皮肤包内选择皮肤
是通过ImageSwitcher和Gallery来实现,选择皮肤然后存储在SharedPreferences里,在widget更新是同步更新皮肤
代码就没什么好贴的
用的着直接看源码吧
源码在群共享里:72349065,欢迎来一起交流学习
最新评论