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.
xiaomibianqian/src-annotation/net/micode/notes/tool/ResourceParser.java

297 lines
12 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.

/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.micode.notes.tool;
import android.content.Context;
import android.preference.PreferenceManager;
import net.micode.notes.R;
import net.micode.notes.ui.NotesPreferenceActivity;
public class ResourceParser {
public static final int YELLOW = 0; // 表示黄色整数值为0。
public static final int BLUE = 1; // 表示蓝色整数值为1。
public static final int WHITE = 2; // 表示白色整数值为2。
public static final int GREEN = 3; // 表示绿色整数值为3。
public static final int RED = 4; // 表示红色整数值为4。
public static final int BG_DEFAULT_COLOR = YELLOW; // 使用YELLOW常量表示默认的背景颜色。
public static final int TEXT_SMALL = 0; // 表示小号文本大小整数值为0。
public static final int TEXT_MEDIUM = 1; // 表示中号文本大小整数值为1。
public static final int TEXT_LARGE = 2; // 表示大号文本大小整数值为2。
public static final int TEXT_SUPER = 3; // 表示超大号文本大小整数值为3。
public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM; // 使用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 获取相应的编辑背景资源。
*
* @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];
}
}
/**
* 获取默认的背景颜色 ID。
*
* @param context 上下文对象。
* @return 默认的背景颜色 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 // 红色列表项单行背景资源
};
/**
* 获取指定颜色 ID 的笔记列表项第一行背景资源。
*
* @param id 颜色 ID对应不同的笔记列表项第一行背景资源。
* @return 对应颜色 ID 的笔记列表项第一行背景资源。
*/
public static int getNoteBgFirstRes(int id) {
return BG_FIRST_RESOURCES[id];
}
/**
* 获取指定颜色 ID 的笔记列表项最后一行背景资源。
*
* @param id 颜色 ID对应不同的笔记列表项最后一行背景资源。
* @return 对应颜色 ID 的笔记列表项最后一行背景资源。
*/
public static int getNoteBgLastRes(int id) {
return BG_LAST_RESOURCES[id];
}
/**
* 获取指定颜色 ID 的笔记列表项单行背景资源。
*
* @param id 颜色 ID对应不同的笔记列表项单行背景资源。
* @return 对应颜色 ID 的笔记列表项单行背景资源。
*/
public static int getNoteBgSingleRes(int id) {
return BG_SINGLE_RESOURCES[id];
}
/**
* 获取指定颜色 ID 的笔记列表项普通行背景资源。
*
* @param id 颜色 ID对应不同的笔记列表项普通行背景资源。
* @return 对应颜色 ID 的笔记列表项普通行背景资源。
*/
public static int getNoteBgNormalRes(int id) {
return BG_NORMAL_RESOURCES[id];
}
/**
* 获取文件夹列表项背景资源。
*
* @return 文件夹列表项背景资源。
*/
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小部件背景资源。
*
* @param id 颜色 ID对应不同的2x小部件背景资源。
* @return 对应颜色 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小部件背景资源。
*
* @param id 颜色 ID对应不同的4x小部件背景资源。
* @return 对应颜色 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 的资源。
*
* @param id 文本外观 ID对应不同的文本外观资源。
* @return 对应文本外观 ID 的资源。
*/
public static int getTexAppearanceResource(int id) {
/**
* HACKME: 修复存储资源 ID 在共享偏好设置中的 bug。
* ID 可能会大于资源数组的长度,在这种情况下,返回 BG_DEFAULT_FONT_SIZE。
*/
if (id >= TEXTAPPEARANCE_RESOURCES.length) {
return BG_DEFAULT_FONT_SIZE; // 这里需要定义 BG_DEFAULT_FONT_SIZE
}
return TEXTAPPEARANCE_RESOURCES[id];
}
/**
* 获取文本外观资源数组的长度。
*
* @return 文本外观资源数组的长度。
*/
public static int getResourcesSize() {
return TEXTAPPEARANCE_RESOURCES.length;
}
}
}