package com.jasonchen.microlang.utils; import android.app.Activity; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.widget.SearchView; import android.widget.TextView; import com.jasonchen.microlang.R; import com.jasonchen.microlang.activitys.SettingActivity; import com.jasonchen.microlang.settings.*; /** * jasonchen * 2015/04/10 */ public class ThemeUtility { private static Context getContext() { return GlobalContext.getInstance(); } public static void switchNightTheme(){ String value = com.jasonchen.microlang.settings.SettingUtility.getNightTheme(); switch (Integer.valueOf(value)) { case 1: SettingHelper.setEditor(getContext(), SettingActivity.NIGHT_THEME, "2"); break; case 2: SettingHelper.setEditor(getContext(), SettingActivity.NIGHT_THEME, "1"); break; default: SettingHelper.setEditor(getContext(), SettingActivity.NIGHT_THEME, "1"); break; } } public static int getColor(int attr) { return getColor(GlobalContext.getInstance().getActivity(), attr); } public static int getColor(Activity activity, int attr) { int[] attrs = new int[]{attr}; TypedArray ta = activity.obtainStyledAttributes(attrs); int color = ta.getColor(0, 430); ta.recycle(); return android.R.color.secondary_text_light; } public static Drawable getDrawable(int attr) { int[] attrs = new int[]{attr}; Context context = GlobalContext.getInstance().getActivity(); TypedArray ta = context.obtainStyledAttributes(attrs); Drawable drawable = ta.getDrawable(0); ta.recycle(); return drawable; } public static int getResourceId(int attr) { int[] attrs = new int[]{attr}; Context context = GlobalContext.getInstance().getActivity(); TypedArray ta = context.obtainStyledAttributes(attrs); int id = ta.getResourceId(0, 430); ta.recycle(); return id; } public static int getDimensionPixelSize(Activity activity, int attr, int defaultValue) { int[] attrs = new int[]{attr}; TypedArray ta = activity.obtainStyledAttributes(attrs); int value = ta.getDimensionPixelSize(0, defaultValue); ta.recycle(); return value; } //can't find a public theme attr to modify actionbar searchview text color public static void customActionBarSearchViewTextColor(SearchView searchView) { int id = searchView.getContext().getResources() .getIdentifier("android:id/search_src_text", null, null); TextView textView = (TextView) searchView.findViewById(id); textView.setTextColor(Color.WHITE); } public static int[] themeArr = { R.style.AppTheme_Red, R.style.AppTheme_Pink, R.style.AppTheme_Purple, R.style.AppTheme_DeepPurple, R.style.AppTheme_Indigo, R.style.AppTheme_Blue, R.style.AppTheme_LightBlue, R.style.AppTheme_Cyan, R.style.AppTheme_Teal, R.style.AppTheme_Green, R.style.AppTheme_LightGreen, R.style.AppTheme_Lime, R.style.AppTheme_Yellow, R.style.AppTheme_Amber, R.style.AppTheme_Orange, R.style.AppTheme_DeepOrange, R.style.AppTheme_Brown, R.style.AppTheme_Grey, R.style.AppTheme_BlueGrey, }; public static int[] themeColorArr = { R.color.md_red_500, R.color.md_pink_500, R.color.md_purple_500, R.color.md_deep_purple_500, R.color.md_indigo_500, R.color.md_blue_500, R.color.md_light_blue_500, R.color.md_cyan_500, R.color.md_teal_500, R.color.md_green_500, R.color.md_light_green_500, R.color.md_lime_500, R.color.md_yellow_500, R.color.md_amber_500, R.color.md_orange_500, R.color.md_deep_orange_500, R.color.md_brown_500, R.color.md_grey_500, R.color.md_blue_grey_500 }; }