You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5._Open-source-software-rea.../src/tool/ResourceParser.java

213 lines
8.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* ResourceParser 类用于管理与应用资源相关的各种静态方法和常量。
*/
package net.micode.notes.tool;
// 导入 Android 的 Context 和 PreferenceManager 类,用于访问应用的上下文和首选项
import android.content.Context;
import android.preference.PreferenceManager;
// 导入应用资源和偏好设置相关的类
import net.micode.notes.R;
import net.micode.notes.ui.NotesPreferenceActivity;
// 定义 ResourceParser 类
public class ResourceParser {
// 定义笔记背景颜色的常量
public static final int YELLOW = 0; // 黄色背景
public static final int BLUE = 1; // 蓝色背景
public static final int WHITE = 2; // 白色背景
public static final int GREEN = 3; // 绿色背景
public static final int RED = 4; // 红色背景
// 默认背景颜色
public static final int BG_DEFAULT_COLOR = YELLOW;
// 定义文本大小的常量
public static final int TEXT_SMALL = 0; // 小号字体
public static final int TEXT_MEDIUM = 1; // 中号字体
public static final int TEXT_LARGE = 2; // 大号字体
public static final int TEXT_SUPER = 3; // 特大号字体
// 默认字体大小
public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM;
/**
* 笔记背景资源类,提供获取不同背景资源的方法。
*/
public static class NoteBgResources {
// 编辑状态下的背景资源数组
private final static int[] BG_EDIT_RESOURCES = new int[]{
R.drawable.edit_yellow, // 黄色背景资源
R.drawable.edit_blue, // 蓝色背景资源
R.drawable.edit_white, // 白色背景资源
R.drawable.edit_green, // 绿色背景资源
R.drawable.edit_red // 红色背景资源
};
// 编辑状态下的标题背景资源数组
private final static int[] BG_EDIT_TITLE_RESOURCES = new int[]{
R.drawable.edit_title_yellow, // 黄色标题背景资源
R.drawable.edit_title_blue, // 蓝色标题背景资源
R.drawable.edit_title_white, // 白色标题背景资源
R.drawable.edit_title_green, // 绿色标题背景资源
R.drawable.edit_title_red // 红色标题背景资源
};
// 根据id获取编辑状态下的背景资源
public static int getNoteBgResource(int id) {
return BG_EDIT_RESOURCES[id];
}
// 根据id获取编辑状态下的标题背景资源
public static int getNoteTitleBgResource(int id) {
return BG_EDIT_TITLE_RESOURCES[id];
}
}
/**
* 获取默认笔记背景id。
*
* @param context 上下文对象用于访问SharedPreferences。
* @return 如果用户设置了背景颜色则返回一个随机背景颜色id否则返回默认背景颜色id。
*/
public static int getDefaultBgId(Context context) {
// 检查用户是否在设置中启用了背景颜色选项
if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) {
// 返回一个随机背景颜色id
return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length);
} else {
// 返回默认背景颜色id
return BG_DEFAULT_COLOR;
}
}
/**
* 笔记列表项背景资源类,提供获取不同背景资源的方法。
*/
public static class NoteItemBgResources {
// 第一个列表项的背景资源数组
private final static int[] BG_FIRST_RESOURCES = new int[]{
R.drawable.list_yellow_up, // 黄色第一个项背景
R.drawable.list_blue_up, // 蓝色第一个项背景
R.drawable.list_white_up, // 白色第一个项背景
R.drawable.list_green_up, // 绿色第一个项背景
R.drawable.list_red_up // 红色第一个项背景
};
// 普通列表项的背景资源数组
private final static int[] BG_NORMAL_RESOURCES = new int[]{
R.drawable.list_yellow_middle, // 黄色普通项背景
R.drawable.list_blue_middle, // 蓝色普通项背景
R.drawable.list_white_middle, // 白色普通项背景
R.drawable.list_green_middle, // 绿色普通项背景
R.drawable.list_red_middle // 红色普通项背景
};
// 最后一个列表项的背景资源数组
private final static int[] BG_LAST_RESOURCES = new int[]{
R.drawable.list_yellow_down, // 黄色最后项背景
R.drawable.list_blue_down, // 蓝色最后项背景
R.drawable.list_white_down, // 白色最后项背景
R.drawable.list_green_down, // 绿色最后项背景
R.drawable.list_red_down // 红色最后项背景
};
// 单个列表项的背景资源数组
private final static int[] BG_SINGLE_RESOURCES = new int[]{
R.drawable.list_yellow_single, // 黄色单项背景
R.drawable.list_blue_single, // 蓝色单项背景
R.drawable.list_white_single, // 白色单项背景
R.drawable.list_green_single, // 绿色单项背景
R.drawable.list_red_single // 红色单项背景
};
// 获取第一个列表项的背景资源
public static int getNoteBgFirstRes(int id) {
return BG_FIRST_RESOURCES[id];
}
// 获取最后一个列表项的背景资源
public static int getNoteBgLastRes(int id) {
return BG_LAST_RESOURCES[id];
}
// 获取单个列表项的背景资源
public static int getNoteBgSingleRes(int id) {
return BG_SINGLE_RESOURCES[id];
}
// 获取普通列表项的背景资源
public static int getNoteBgNormalRes(int id) {
return BG_NORMAL_RESOURCES[id];
}
// 获取文件夹背景资源
public static int getFolderBgRes() {
return R.drawable.list_folder;
}
}
/**
* 小部件背景资源类,提供获取小部件背景资源的方法。
*/
public static class WidgetBgResources {
// 2x 小部件背景资源数组
private final static int[] BG_2X_RESOURCES = new int[]{
R.drawable.widget_2x_yellow, // 黄色2x小部件背景
R.drawable.widget_2x_blue, // 蓝色2x小部件背景
R.drawable.widget_2x_white, // 白色2x小部件背景
R.drawable.widget_2x_green, // 绿色2x小部件背景
R.drawable.widget_2x_red // 红色2x小部件背景
};
// 根据id获取2x小部件的背景资源
public static int getWidget2xBgResource(int id) {
return BG_2X_RESOURCES[id];
}
// 4x 小部件背景资源数组
private final static int[] BG_4X_RESOURCES = new int[]{
R.drawable.widget_4x_yellow, // 黄色4x小部件背景
R.drawable.widget_4x_blue, // 蓝色4x小部件背景
R.drawable.widget_4x_white, // 白色4x小部件背景
R.drawable.widget_4x_green, // 绿色4x小部件背景
R.drawable.widget_4x_red // 红色4x小部件背景
};
// 根据id获取4x小部件的背景资源
public static int getWidget4xBgResource(int id) {
return BG_4X_RESOURCES[id];
}
}
/**
* 文本外观资源类,提供获取不同文本外观资源的方法。
*/
public static class TextAppearanceResources {
// 文本外观资源数组
private final static int[] TEXTAPPEARANCE_RESOURCES = new int[]{
R.style.TextAppearanceNormal, // 正常文本样式
R.style.TextAppearanceMedium, // 中等文本样式
R.style.TextAppearanceLarge, // 大号文本样式
R.style.TextAppearanceSuper // 特大号文本样式
};
// 根据id获取文本外观资源
public static int getTexAppearanceResource(int id) {
// 如果id超出资源数组范围返回默认字体大小
if (id >= TEXTAPPEARANCE_RESOURCES.length) {
return BG_DEFAULT_FONT_SIZE;
}
return TEXTAPPEARANCE_RESOURCES[id];
}
// 获取文本外观资源的数量
public static int getResourcesSize() {
return TEXTAPPEARANCE_RESOURCES.length;
}
}
}