package com.v7lin.style.setup;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import com.v7lin.android.env.EnvResourcesManager;
import com.v7lin.android.env.EnvResourcesWrapper;
import com.v7lin.android.env.EnvSkinResourcesWrapper;
import com.v7lin.android.env.NormalEnvSetup;
import com.v7lin.style.app.StyleActivity;
import com.v7lin.style.news.R;
/**
*
*
* @author v7lin E-mail:v7lin@qq.com
*/
public class SkinActivity extends StyleActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private List<SkinData> loadSkinDatas(File skinDir, SkinFilter skinFilter) {
ArrayList<SkinData> skinDatas = new ArrayList<SkinData>();
final Resources currRes = getResources();
if (currRes != null && currRes instanceof EnvResourcesWrapper) {
Resources oriRes = ((EnvResourcesWrapper) currRes).getWrapped();
// 可自由定制(展示给用户甄选)
final int skinNameResID = R.string.skin_name;
final int skinBGDrawResID = R.drawable.skin_bg;
final int skinTextColorResID = R.color.skin_text_color;
final String currSkinName = currRes.getString(skinNameResID);
// 读取默认皮肤参数
final String defaultSkinName = oriRes.getString(skinNameResID);
final String defaultSkinPath = null;
final Drawable defaultSkinBGDraw = oriRes.getDrawable(skinBGDrawResID);
final int defaultSkinTextColor = oriRes.getColor(skinTextColorResID);
skinDatas.add(new SkinData(defaultSkinName, defaultSkinPath, defaultSkinBGDraw, defaultSkinTextColor, TextUtils.equals(defaultSkinName, currSkinName)));
// 读取skin文件夹下皮肤参数
File[] skinFiles = skinDir.listFiles(skinFilter);
if (skinFiles != null && skinFiles.length > 0) {
for (File skinFile : skinFiles) {
final String skinPath = skinFile.getAbsolutePath();
EnvResourcesManager manager = new EnvResourcesManager();
manager.setEnvSetup(new NormalEnvSetup(skinPath, null));
Context base = getBaseContext();
EnvResourcesWrapper skinRes = new EnvSkinResourcesWrapper(base, base.getResources(), manager);
final String skinName = skinRes.getString(skinNameResID);
final Drawable skinBGDraw = skinRes.getDrawable(skinBGDrawResID);
final int skinTextColor = skinRes.getColor(skinTextColorResID);
skinDatas.add(new SkinData(skinName, skinPath, skinBGDraw, skinTextColor, TextUtils.equals(skinName, currSkinName)));
}
}
}
return skinDatas;
}
}