From 2e488b153a9187b70d082a56d7366ec4c18a47d0 Mon Sep 17 00:00:00 2001 From: dingxuXie <1149660585@qq.com> Date: Thu, 25 Apr 2024 15:32:13 +0800 Subject: [PATCH] =?UTF-8?q?ResourceParser=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/micode/notes/tool/ResourceParser.java | 188 +++++++++++------- 1 file changed, 121 insertions(+), 67 deletions(-) diff --git a/Notes-master/src/net/micode/notes/tool/ResourceParser.java b/Notes-master/src/net/micode/notes/tool/ResourceParser.java index 0443421..244634e 100644 --- a/Notes-master/src/net/micode/notes/tool/ResourceParser.java +++ b/Notes-master/src/net/micode/notes/tool/ResourceParser.java @@ -22,24 +22,38 @@ import android.preference.PreferenceManager; import net.micode.notes.R; import net.micode.notes.ui.NotesPreferenceActivity; -public class ResourceParser {//??????? +/** + * ResourceParser 类设计用于便捷地访问与笔记背景及文本样式相关的资源标识符。 + * 它封装了表示各种颜色、文本大小的静态常量,并为不同的笔记编辑场景提供了对drawable资源的访问。 + */ +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; + /** + * NoteBgResources 内部类封装了与编辑笔记背景相关的drawable资源数组。 + * 分别为普通编辑背景(BG_EDIT_RESOURCES)和标题编辑背景(BG_EDIT_TITLE_RESOURCES), + * 对应于已定义的不同颜色常量,便于在实际应用中根据颜色选择相应的资源。 + */ public static class NoteBgResources { + // 编辑笔记背景时使用的drawable资源数组,与颜色常量一一对应。 private final static int [] BG_EDIT_RESOURCES = new int [] { R.drawable.edit_yellow, R.drawable.edit_blue, @@ -48,6 +62,7 @@ public class ResourceParser {//??????? R.drawable.edit_red }; + // 编辑笔记标题背景时使用的drawable资源数组,同样与颜色常量一一对应。 private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] { R.drawable.edit_title_yellow, R.drawable.edit_title_blue, @@ -55,26 +70,51 @@ public class ResourceParser {//??????? R.drawable.edit_title_green, R.drawable.edit_title_red }; + } +} + /** + * 根据提供的id获取注释背景资源。 + * @param id 注释的id,用于索引背景资源数组。 + * @return 返回对应id的背景资源。 + */ public static int getNoteBgResource(int id) { return BG_EDIT_RESOURCES[id]; } + /** + * 根据提供的id获取注释标题背景资源。 + * @param id 注释标题的id,用于索引标题背景资源数组。 + * @return 返回对应id的标题背景资源。 + */ public static int getNoteTitleBgResource(int id) { return BG_EDIT_TITLE_RESOURCES[id]; } - } - public static int getDefaultBgId(Context context) { - if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( - NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { - return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); - } else { - return BG_DEFAULT_COLOR; + /** + * 获取默认背景资源id。 + * 根据用户设置是否设置了自定义背景颜色来决定返回随机背景资源或默认背景资源。 + * @param context 上下文对象,用于访问SharedPreferences。 + * @return 返回背景资源的id。 + */ + public static int getDefaultBgId(Context context) { + // 检查用户是否设置了自定义背景颜色 + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( + NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { + // 如果设置了,返回一个随机的背景资源 + return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); + } else { + // 如果未设置,返回默认背景资源 + 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, @@ -83,6 +123,7 @@ public class ResourceParser {//??????? R.drawable.list_red_up }; + // 正常展示的背景资源数组 private final static int [] BG_NORMAL_RESOURCES = new int [] { R.drawable.list_yellow_middle, R.drawable.list_blue_middle, @@ -91,6 +132,7 @@ public class ResourceParser {//??????? R.drawable.list_red_middle }; + // 最后展示的背景资源数组 private final static int [] BG_LAST_RESOURCES = new int [] { R.drawable.list_yellow_down, R.drawable.list_blue_down, @@ -99,6 +141,7 @@ public class ResourceParser {//??????? R.drawable.list_red_down, }; + // 单个展示的背景资源数组 private final static int [] BG_SINGLE_RESOURCES = new int [] { R.drawable.list_yellow_single, R.drawable.list_blue_single, @@ -106,76 +149,87 @@ public class ResourceParser {//??????? R.drawable.list_green_single, R.drawable.list_red_single }; + } - public static int getNoteBgFirstRes(int id) { - return BG_FIRST_RESOURCES[id]; - } +//根据提供的ID,获取对应的笔记背景资源的第一个资源。 - public static int getNoteBgLastRes(int id) { - return BG_LAST_RESOURCES[id]; - } +public static int getNoteBgFirstRes(int id) { + return BG_FIRST_RESOURCES[id]; +} - public static int getNoteBgSingleRes(int id) { - return BG_SINGLE_RESOURCES[id]; - } +//根据提供的ID,获取对应的笔记背景资源的最后一个资源。 +public static int getNoteBgLastRes(int id) { + return BG_LAST_RESOURCES[id]; +} - public static int getNoteBgNormalRes(int id) { - return BG_NORMAL_RESOURCES[id]; - } +//根据提供的ID,获取对应的笔记背景资源的单个资源。 +public static int getNoteBgSingleRes(int id) { + return BG_SINGLE_RESOURCES[id]; +} - public static int getFolderBgRes() { - return R.drawable.list_folder; - } - } +//根据提供的ID,获取对应的笔记背景资源的普通资源。 +public static int getNoteBgNormalRes(int id) { + return BG_NORMAL_RESOURCES[id]; +} - public static class WidgetBgResources { - private final static int [] BG_2X_RESOURCES = new int [] { - R.drawable.widget_2x_yellow, - R.drawable.widget_2x_blue, - R.drawable.widget_2x_white, - R.drawable.widget_2x_green, - R.drawable.widget_2x_red, - }; - public static int getWidget2xBgResource(int id) { - return BG_2X_RESOURCES[id]; - } +//获取文件夹背景资源的ID。 +public static int getFolderBgRes() { + return R.drawable.list_folder; +} - private final static int [] BG_4X_RESOURCES = new int [] { - R.drawable.widget_4x_yellow, - R.drawable.widget_4x_blue, - R.drawable.widget_4x_white, - R.drawable.widget_4x_green, - R.drawable.widget_4x_red - }; +//这个内部类提供了一系列的Widget背景资源。 - public static int getWidget4xBgResource(int id) { - return BG_4X_RESOURCES[id]; - } +public static class WidgetBgResources { + + public static int getWidget2xBgResource(int id) { + return BG_2X_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 - }; + // 提供4x尺寸的Widget背景资源。 + + private final static int [] BG_4X_RESOURCES = new int [] { + R.drawable.widget_4x_yellow, + R.drawable.widget_4x_blue, + R.drawable.widget_4x_white, + R.drawable.widget_4x_green, + R.drawable.widget_4x_red + }; + + //获取指定索引的4x Widget背景资源的ID。 +c static int getWidget4xBgResource(int id) { + return BG_4X_RESOURCES[id]; + } +} - public static int getTexAppearanceResource(int id) { - /** - * HACKME: Fix bug of store the resource id in shared preference. - * The id may larger than the length of resources, in this case, - * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} - */ - if (id >= TEXTAPPEARANCE_RESOURCES.length) { - return BG_DEFAULT_FONT_SIZE; - } - return TEXTAPPEARANCE_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 getResourcesSize() { - return TEXTAPPEARANCE_RESOURCES.length; + public class ResourceParser { + + // HACKME: 修复了存储资源ID到共享偏好中的bug。如果ID大于资源数组的长度, + // 则返回默认字体大小BG_DEFAULT_FONT_SIZE。 + public static int getTexAppearanceResource(int id) { + if (id >= TEXTAPPEARANCE_RESOURCES.length) { + return BG_DEFAULT_FONT_SIZE; } + return TEXTAPPEARANCE_RESOURCES[id]; } -} + + // 获取TEXTAPPEARANCE_RESOURCES数组的大小。 + public static int getResourcesSize() { + return TEXTAPPEARANCE_RESOURCES.length; + } +} \ No newline at end of file