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.
note/ResourceParser - 副本.java

211 lines
8.3 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; // 黄色
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 // 红色标题背景
};
// 获取笔记编辑界面的背景资源
public static int getNoteBgResource(int id) {
return BG_EDIT_RESOURCES[id];
}
// 获取笔记编辑界面标题的背景资源
public static int getNoteTitleBgResource(int id) {
return BG_EDIT_TITLE_RESOURCES[id];
}
}
// 获取默认的背景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, // 蓝色条目上方
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 {
// 2x2 小部件的背景资源
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 // 红色背景
};
// 获取 2x2 小部件的背景资源
public static int getWidget2xBgResource(int id) {
return BG_2X_RESOURCES[id];
}
// 4x4 小部件的背景资源
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 // 红色背景
};
// 获取 4x4 小部件的背景资源
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 // 超大号文字
};
// 获取文字外观资源
public static int getTexAppearanceResource(int id) {
/**
* HACKME: 修复存储资源ID到共享偏好设置的bug。
* 如果ID大于资源数组的长度返回默认的字体大小。
*/
if (id >= TEXTAPPEARANCE_RESOURCES.length) {
return BG_DEFAULT_FONT_SIZE; // 如果ID超出范围返回默认的字体大小
}
return TEXTAPPEARANCE_RESOURCES[id];
}
// 获取文字外观资源的数量
public static int getResourcesSize() {
return TEXTAPPEARANCE_RESOURCES.length;
}
}
}