鴻蒙NEXT開發資源工具類(ArkTs)

import { AppUtil } from './AppUtil';
import { StrUtil } from './StrUtil';
import { resourceManager } from '@kit.LocalizationKit';/*** 資源工具類。* 提供訪問應用資源的能力,包括布爾值、數字、字符串等資源的獲取。** @author 鴻蒙布道師* @since 2025/04/08*/
export class ResUtil {/*** 獲取提供訪問應用資源的能力。** @returns 返回 ResourceManager 實例。*/static getResourceManager(): resourceManager.ResourceManager {return AppUtil.getContext().resourceManager;}/*** 獲取指定資源對應的布爾結果。** @param resId 資源 ID 值或資源信息。* @returns 返回布爾值。*/static getBoolean(resId: number | Resource): boolean {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getBoolean(resId) : manager.getBoolean(resId);}/*** 獲取指定資源名稱對應的布爾結果。** @param resName 資源名稱。* @returns 返回布爾值。*/static getBooleanByName(resName: string): boolean {return ResUtil.getResourceManager().getBooleanByName(resName);}/*** 獲取指定資源對應的整數或浮點數值。** @param resId 資源 ID 值或資源信息。* @returns 返回數值。*/static getNumber(resId: number | Resource): number {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getNumber(resId) : manager.getNumber(resId);}/*** 獲取指定資源名稱對應的整數或浮點數值。** @param resName 資源名稱。* @returns 返回數值。*/static getNumberByName(resName: string): number {return ResUtil.getResourceManager().getNumberByName(resName);}/*** 獲取指定資源對應的字符串。* 支持格式化參數:* - 格式化符號:%d、%f、%s、%%、%數字\$d、%數字\$f、%數字\$s;* - 說明:%%轉義為%; %數字\$d表示使用第幾個參數;* - 示例:%%d格式化后為%d字符串; %1\$d表示使用第一個參數。** @param resId 資源 ID 值或資源信息。* @param args 格式化字符串資源參數(可選)。* @returns 返回格式化后的字符串。*/static getStringSync(resId: number | Resource, ...args: Array<string | number>): string {const manager = ResUtil.getResourceManager();return typeof resId === 'number'? manager.getStringSync(resId, ...args): manager.getStringSync(resId, ...args);}/*** 異步獲取指定資源對應的字符串。** @param resId 資源 ID 值或資源信息。* @returns 返回 Promise,解析為字符串。*/static async getStringValue(resId: number | Resource): Promise<string> {const manager = ResUtil.getResourceManager();return typeof resId === 'number'? manager.getStringValue(resId): manager.getStringValue(resId);}/*** 獲取指定資源名稱對應的字符串(同步)。* 支持格式化參數:* - 格式化符號:%d、%f、%s、%%、%數字\$d、%數字\$f、%數字\$s;* - 說明:%%轉義為%; %數字\$d表示使用第幾個參數;* - 示例:%%d格式化后為%d字符串; %1\$d表示使用第一個參數。** @param resName 資源名稱。* @param args 格式化字符串資源參數(可選)。* @returns 返回格式化后的字符串。*/static getStringByNameSync(resName: string, ...args: Array<string | number>): string {const manager = ResUtil.getResourceManager();return args.length > 0 ? manager.getStringByNameSync(resName, ...args) : manager.getStringByNameSync(resName);}/*** 獲取指定資源名稱對應的字符串(異步)。** @param resName 資源名稱。* @returns 返回 Promise,解析為字符串。*/static async getStringByName(resName: string): Promise<string> {return ResUtil.getResourceManager().getStringByName(resName);}/*** 獲取指定資源對應的字符串數組(同步)。** @param resId 資源 ID 值或資源信息。* @returns 返回字符串數組。*/static getStringArrayValueSync(resId: number | Resource): Array<string> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getStringArrayValueSync(resId) : manager.getStringArrayValueSync(resId);}/*** 獲取指定資源對應的字符串數組(異步)。** @param resId 資源 ID 值或資源信息。* @returns 返回 Promise,解析為字符串數組。*/static async getStringArrayValue(resId: number | Resource): Promise<Array<string>> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getStringArrayValue(resId) : manager.getStringArrayValue(resId);}/*** 獲取指定資源名稱對應的字符串數組(同步)。** @param resName 資源名稱。* @returns 返回字符串數組。*/static getStringArrayByNameSync(resName: string): Array<string> {return ResUtil.getResourceManager().getStringArrayByNameSync(resName);}/*** 獲取指定資源名稱對應的字符串數組(異步)。** @param resName 資源名稱。* @returns 返回 Promise,解析為字符串數組。*/static async getStringArrayByName(resName: string): Promise<Array<string>> {return ResUtil.getResourceManager().getStringArrayByName(resName);}/*** 根據指定數量獲取單復數字符串(同步)。** @param resId 資源 ID 值或資源信息。* @param num 數量值。* @returns 返回單復數字符串。*/static getPluralStringValueSync(resId: number | Resource, num: number): string {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getPluralStringValueSync(resId, num) : manager.getPluralStringValueSync(resId, num);}/*** 根據指定數量獲取單復數字符串(異步)。** @param resId 資源 ID 值或資源信息。* @param num 數量值。* @returns 返回 Promise,解析為單復數字符串。*/static async getPluralStringValue(resId: number | Resource, num: number): Promise<string> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getPluralStringValue(resId, num) : manager.getPluralStringValue(resId, num);}/*** 根據指定數量獲取資源名稱對應的單復數字符串(同步)。** @param resName 資源名稱。* @param num 數量值。* @returns 返回單復數字符串。*/static getPluralStringByNameSync(resName: string, num: number): string {return ResUtil.getResourceManager().getPluralStringByNameSync(resName, num);}/*** 根據指定數量獲取資源名稱對應的單復數字符串(異步)。** @param resName 資源名稱。* @param num 數量值。* @returns 返回 Promise,解析為單復數字符串。*/static async getPluralStringByName(resName: string, num: number): Promise<string> {return ResUtil.getResourceManager().getPluralStringByName(resName, num);}/*** 獲取指定資源對應的顏色值(十進制)(同步)。** @param resId 資源 ID 值或資源信息。* @returns 返回顏色值(十進制)。*/static getColorSync(resId: number | Resource): number {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getColorSync(resId) : manager.getColorSync(resId);}/*** 獲取指定資源對應的顏色值(十進制)(異步)。** @param resId 資源 ID 值或資源信息。* @returns 返回 Promise,解析為顏色值(十進制)。*/static async getColor(resId: number | Resource): Promise<number> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getColor(resId) : manager.getColor(resId);}/*** 獲取指定資源名稱對應的顏色值(十進制)(同步)。** @param resName 資源名稱。* @returns 返回顏色值(十進制)。*/static getColorByNameSync(resName: string): number {return ResUtil.getResourceManager().getColorByNameSync(resName);}/*** 獲取指定資源名稱對應的顏色值(十進制)(異步)。** @param resName 資源名稱。* @returns 返回 Promise,解析為顏色值(十進制)。*/static async getColorByName(resName: string): Promise<number> {return ResUtil.getResourceManager().getColorByName(resName);}/*** 獲取指定資源對應的媒體文件內容(同步)。** @param resId 資源 ID 值或資源信息。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @returns 返回媒體文件內容(Uint8Array)。*/static getMediaContentSync(resId: number | Resource, density?: number): Uint8Array {const manager = ResUtil.getResourceManager();return density !== undefined? (typeof resId === 'number' ? manager.getMediaContentSync(resId, density) : manager.getMediaContentSync(resId, density)): (typeof resId === 'number' ? manager.getMediaContentSync(resId) : manager.getMediaContentSync(resId));}/*** 獲取指定資源對應的媒體文件內容(異步)。** @param resId 資源 ID 值或資源信息。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @returns 返回 Promise,解析為媒體文件內容(Uint8Array)。*/static async getMediaContent(resId: number | Resource, density?: number): Promise<Uint8Array> {const manager = ResUtil.getResourceManager();return density !== undefined? (typeof resId === 'number' ? manager.getMediaContent(resId, density) : manager.getMediaContent(resId, density)): (typeof resId === 'number' ? manager.getMediaContent(resId) : manager.getMediaContent(resId));}/*** 獲取指定資源名稱對應的媒體文件內容(同步或異步)。** @param resName 資源名稱。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回媒體文件內容(Uint8Array)。*/static getMediaByName(resName: string, density?: number, isAsync = false): Uint8Array | Promise<Uint8Array> {const manager = ResUtil.getResourceManager();if (isAsync) {return density !== undefined? manager.getMediaByName(resName, density): manager.getMediaByName(resName);} else {return density !== undefined? manager.getMediaByNameSync(resName, density): manager.getMediaByNameSync(resName);}}/*** 獲取指定資源 ID 對應的圖片資源 Base64 編碼(同步或異步)。** @param resId 資源 ID 值或資源信息。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回圖片資源 Base64 編碼。*/static getMediaContentBase64(resId: number | Resource,density?: number,isAsync = false): string | Promise<string> {const manager = ResUtil.getResourceManager();const callMethod = isAsync ? 'getMediaContentBase64' : 'getMediaContentBase64Sync';return density !== undefined? typeof resId === 'number'? manager[callMethod](resId, density): manager[callMethod](resId, density): typeof resId === 'number'? manager[callMethod](resId): manager[callMethod](resId);}/*** 獲取指定資源名稱對應的圖片資源 Base64 編碼(同步或異步)。** @param resName 資源名稱。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回圖片資源 Base64 編碼。*/static getMediaBase64ByName(resName: string,density?: number,isAsync = false): string | Promise<string> {const manager = ResUtil.getResourceManager();return isAsync? density !== undefined? manager.getMediaBase64ByName(resName, density): manager.getMediaBase64ByName(resName): density !== undefined? manager.getMediaBase64ByNameSync(resName, density): manager.getMediaBase64ByNameSync(resName);}/*** 獲取 resources/rawfile 目錄下對應的 rawfile 文件內容(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回文件內容(Uint8Array)。*/static getRawFileContent(path: string, isAsync = false): Uint8Array | Promise<Uint8Array> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getRawFileContent(path) : manager.getRawFileContentSync(path);}/*** 獲取 resources/rawfile 目錄下對應的 rawfile 文件內容,并轉換為字符串(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回文件內容(字符串)。*/static getRawFileContentStr(path: string, isAsync = false): string | Promise<string> {const getContent = isAsync? async (): Promise<string> => StrUtil.unit8ArrayToStr(await ResUtil.getRawFileContent(path, true)): (): string => StrUtil.unit8ArrayToStr(ResUtil.getRawFileContent(path, false));return getContent();}/*** 獲取 resources/rawfile 目錄下文件夾及文件列表(同步或異步)。** @param path rawfile 文件夾路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回文件列表。*/static getRawFileList(path: string, isAsync = false): Array<string> | Promise<Array<string>> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getRawFileList(path) : manager.getRawFileListSync(path);}/*** 獲取 resources/rawfile 目錄下對應 rawfile 文件所在 HAP 的 descriptor 信息(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回 RawFileDescriptor。*/static getRawFd(path: string, isAsync = false): resourceManager.RawFileDescriptor | Promise<resourceManager.RawFileDescriptor> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getRawFd(path) : manager.getRawFdSync(path);}/*** 關閉 resources/rawfile 目錄下 rawfile 文件所在 HAP 的 descriptor 信息(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。*/static closeRawFd(path: string, isAsync = false): void | Promise<void> {const manager = ResUtil.getResourceManager();return isAsync ? manager.closeRawFd(path) : manager.closeRawFdSync(path);}/*** 獲取設備的 Configuration(同步或異步)。** @param isAsync 是否為異步操作,默認為 false。* @returns 返回設備的 Configuration。*/static getConfiguration(isAsync = false): resourceManager.Configuration | Promise<resourceManager.Configuration> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getConfiguration() : manager.getConfigurationSync();}/*** 獲取設備的 DeviceCapability(同步或異步)。** @param isAsync 是否為異步操作,默認為 false。* @returns 返回設備的 DeviceCapability。*/static getDeviceCapability(isAsync = false): resourceManager.DeviceCapability | Promise<resourceManager.DeviceCapability> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getDeviceCapability() : manager.getDeviceCapabilitySync();}/*** 應用運行時,加載指定的資源路徑,實現資源覆蓋。** @param path 資源路徑。*/static addResource(path: string): void {ResUtil.getResourceManager().addResource(path);}/*** 用戶運行時,移除指定的資源路徑,還原被覆蓋前的資源。** @param path 資源路徑。*/static removeResource(path: string): void {ResUtil.getResourceManager().removeResource(path);}/*** 判斷指定路徑是否是 rawfile 下的目錄。** @param path rawfile 路徑。* @returns true 表示是 rawfile 下的目錄,false 表示不是。*/static isRawDir(path: string): boolean {return ResUtil.getResourceManager().isRawDir(path);}
}
代碼如下:
import { AppUtil } from './AppUtil';
import { StrUtil } from './StrUtil';
import { resourceManager } from '@kit.LocalizationKit';/*** 資源工具類。* 提供訪問應用資源的能力,包括布爾值、數字、字符串等資源的獲取。** @author 鴻蒙布道師* @since 2025/04/08*/
export class ResUtil {/*** 獲取提供訪問應用資源的能力。** @returns 返回 ResourceManager 實例。*/static getResourceManager(): resourceManager.ResourceManager {return AppUtil.getContext().resourceManager;}/*** 獲取指定資源對應的布爾結果。** @param resId 資源 ID 值或資源信息。* @returns 返回布爾值。*/static getBoolean(resId: number | Resource): boolean {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getBoolean(resId) : manager.getBoolean(resId);}/*** 獲取指定資源名稱對應的布爾結果。** @param resName 資源名稱。* @returns 返回布爾值。*/static getBooleanByName(resName: string): boolean {return ResUtil.getResourceManager().getBooleanByName(resName);}/*** 獲取指定資源對應的整數或浮點數值。** @param resId 資源 ID 值或資源信息。* @returns 返回數值。*/static getNumber(resId: number | Resource): number {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getNumber(resId) : manager.getNumber(resId);}/*** 獲取指定資源名稱對應的整數或浮點數值。** @param resName 資源名稱。* @returns 返回數值。*/static getNumberByName(resName: string): number {return ResUtil.getResourceManager().getNumberByName(resName);}/*** 獲取指定資源對應的字符串。* 支持格式化參數:* - 格式化符號:%d、%f、%s、%%、%數字\$d、%數字\$f、%數字\$s;* - 說明:%%轉義為%; %數字\$d表示使用第幾個參數;* - 示例:%%d格式化后為%d字符串; %1\$d表示使用第一個參數。** @param resId 資源 ID 值或資源信息。* @param args 格式化字符串資源參數(可選)。* @returns 返回格式化后的字符串。*/static getStringSync(resId: number | Resource, ...args: Array<string | number>): string {const manager = ResUtil.getResourceManager();return typeof resId === 'number'? manager.getStringSync(resId, ...args): manager.getStringSync(resId, ...args);}/*** 異步獲取指定資源對應的字符串。** @param resId 資源 ID 值或資源信息。* @returns 返回 Promise,解析為字符串。*/static async getStringValue(resId: number | Resource): Promise<string> {const manager = ResUtil.getResourceManager();return typeof resId === 'number'? manager.getStringValue(resId): manager.getStringValue(resId);}/*** 獲取指定資源名稱對應的字符串(同步)。* 支持格式化參數:* - 格式化符號:%d、%f、%s、%%、%數字\$d、%數字\$f、%數字\$s;* - 說明:%%轉義為%; %數字\$d表示使用第幾個參數;* - 示例:%%d格式化后為%d字符串; %1\$d表示使用第一個參數。** @param resName 資源名稱。* @param args 格式化字符串資源參數(可選)。* @returns 返回格式化后的字符串。*/static getStringByNameSync(resName: string, ...args: Array<string | number>): string {const manager = ResUtil.getResourceManager();return args.length > 0 ? manager.getStringByNameSync(resName, ...args) : manager.getStringByNameSync(resName);}/*** 獲取指定資源名稱對應的字符串(異步)。** @param resName 資源名稱。* @returns 返回 Promise,解析為字符串。*/static async getStringByName(resName: string): Promise<string> {return ResUtil.getResourceManager().getStringByName(resName);}/*** 獲取指定資源對應的字符串數組(同步)。** @param resId 資源 ID 值或資源信息。* @returns 返回字符串數組。*/static getStringArrayValueSync(resId: number | Resource): Array<string> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getStringArrayValueSync(resId) : manager.getStringArrayValueSync(resId);}/*** 獲取指定資源對應的字符串數組(異步)。** @param resId 資源 ID 值或資源信息。* @returns 返回 Promise,解析為字符串數組。*/static async getStringArrayValue(resId: number | Resource): Promise<Array<string>> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getStringArrayValue(resId) : manager.getStringArrayValue(resId);}/*** 獲取指定資源名稱對應的字符串數組(同步)。** @param resName 資源名稱。* @returns 返回字符串數組。*/static getStringArrayByNameSync(resName: string): Array<string> {return ResUtil.getResourceManager().getStringArrayByNameSync(resName);}/*** 獲取指定資源名稱對應的字符串數組(異步)。** @param resName 資源名稱。* @returns 返回 Promise,解析為字符串數組。*/static async getStringArrayByName(resName: string): Promise<Array<string>> {return ResUtil.getResourceManager().getStringArrayByName(resName);}/*** 根據指定數量獲取單復數字符串(同步)。** @param resId 資源 ID 值或資源信息。* @param num 數量值。* @returns 返回單復數字符串。*/static getPluralStringValueSync(resId: number | Resource, num: number): string {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getPluralStringValueSync(resId, num) : manager.getPluralStringValueSync(resId, num);}/*** 根據指定數量獲取單復數字符串(異步)。** @param resId 資源 ID 值或資源信息。* @param num 數量值。* @returns 返回 Promise,解析為單復數字符串。*/static async getPluralStringValue(resId: number | Resource, num: number): Promise<string> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getPluralStringValue(resId, num) : manager.getPluralStringValue(resId, num);}/*** 根據指定數量獲取資源名稱對應的單復數字符串(同步)。** @param resName 資源名稱。* @param num 數量值。* @returns 返回單復數字符串。*/static getPluralStringByNameSync(resName: string, num: number): string {return ResUtil.getResourceManager().getPluralStringByNameSync(resName, num);}/*** 根據指定數量獲取資源名稱對應的單復數字符串(異步)。** @param resName 資源名稱。* @param num 數量值。* @returns 返回 Promise,解析為單復數字符串。*/static async getPluralStringByName(resName: string, num: number): Promise<string> {return ResUtil.getResourceManager().getPluralStringByName(resName, num);}/*** 獲取指定資源對應的顏色值(十進制)(同步)。** @param resId 資源 ID 值或資源信息。* @returns 返回顏色值(十進制)。*/static getColorSync(resId: number | Resource): number {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getColorSync(resId) : manager.getColorSync(resId);}/*** 獲取指定資源對應的顏色值(十進制)(異步)。** @param resId 資源 ID 值或資源信息。* @returns 返回 Promise,解析為顏色值(十進制)。*/static async getColor(resId: number | Resource): Promise<number> {const manager = ResUtil.getResourceManager();return typeof resId === 'number' ? manager.getColor(resId) : manager.getColor(resId);}/*** 獲取指定資源名稱對應的顏色值(十進制)(同步)。** @param resName 資源名稱。* @returns 返回顏色值(十進制)。*/static getColorByNameSync(resName: string): number {return ResUtil.getResourceManager().getColorByNameSync(resName);}/*** 獲取指定資源名稱對應的顏色值(十進制)(異步)。** @param resName 資源名稱。* @returns 返回 Promise,解析為顏色值(十進制)。*/static async getColorByName(resName: string): Promise<number> {return ResUtil.getResourceManager().getColorByName(resName);}/*** 獲取指定資源對應的媒體文件內容(同步)。** @param resId 資源 ID 值或資源信息。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @returns 返回媒體文件內容(Uint8Array)。*/static getMediaContentSync(resId: number | Resource, density?: number): Uint8Array {const manager = ResUtil.getResourceManager();return density !== undefined? (typeof resId === 'number' ? manager.getMediaContentSync(resId, density) : manager.getMediaContentSync(resId, density)): (typeof resId === 'number' ? manager.getMediaContentSync(resId) : manager.getMediaContentSync(resId));}/*** 獲取指定資源對應的媒體文件內容(異步)。** @param resId 資源 ID 值或資源信息。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @returns 返回 Promise,解析為媒體文件內容(Uint8Array)。*/static async getMediaContent(resId: number | Resource, density?: number): Promise<Uint8Array> {const manager = ResUtil.getResourceManager();return density !== undefined? (typeof resId === 'number' ? manager.getMediaContent(resId, density) : manager.getMediaContent(resId, density)): (typeof resId === 'number' ? manager.getMediaContent(resId) : manager.getMediaContent(resId));}/*** 獲取指定資源名稱對應的媒體文件內容(同步或異步)。** @param resName 資源名稱。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回媒體文件內容(Uint8Array)。*/static getMediaByName(resName: string, density?: number, isAsync = false): Uint8Array | Promise<Uint8Array> {const manager = ResUtil.getResourceManager();if (isAsync) {return density !== undefined? manager.getMediaByName(resName, density): manager.getMediaByName(resName);} else {return density !== undefined? manager.getMediaByNameSync(resName, density): manager.getMediaByNameSync(resName);}}/*** 獲取指定資源 ID 對應的圖片資源 Base64 編碼(同步或異步)。** @param resId 資源 ID 值或資源信息。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回圖片資源 Base64 編碼。*/static getMediaContentBase64(resId: number | Resource,density?: number,isAsync = false): string | Promise<string> {const manager = ResUtil.getResourceManager();const callMethod = isAsync ? 'getMediaContentBase64' : 'getMediaContentBase64Sync';return density !== undefined? typeof resId === 'number'? manager[callMethod](resId, density): manager[callMethod](resId, density): typeof resId === 'number'? manager[callMethod](resId): manager[callMethod](resId);}/*** 獲取指定資源名稱對應的圖片資源 Base64 編碼(同步或異步)。** @param resName 資源名稱。* @param density 屏幕密度(可選),0 或缺省表示默認屏幕密度。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回圖片資源 Base64 編碼。*/static getMediaBase64ByName(resName: string,density?: number,isAsync = false): string | Promise<string> {const manager = ResUtil.getResourceManager();return isAsync? density !== undefined? manager.getMediaBase64ByName(resName, density): manager.getMediaBase64ByName(resName): density !== undefined? manager.getMediaBase64ByNameSync(resName, density): manager.getMediaBase64ByNameSync(resName);}/*** 獲取 resources/rawfile 目錄下對應的 rawfile 文件內容(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回文件內容(Uint8Array)。*/static getRawFileContent(path: string, isAsync = false): Uint8Array | Promise<Uint8Array> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getRawFileContent(path) : manager.getRawFileContentSync(path);}/*** 獲取 resources/rawfile 目錄下對應的 rawfile 文件內容,并轉換為字符串(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回文件內容(字符串)。*/static getRawFileContentStr(path: string, isAsync = false): string | Promise<string> {const getContent = isAsync? async (): Promise<string> => StrUtil.unit8ArrayToStr(await ResUtil.getRawFileContent(path, true)): (): string => StrUtil.unit8ArrayToStr(ResUtil.getRawFileContent(path, false));return getContent();}/*** 獲取 resources/rawfile 目錄下文件夾及文件列表(同步或異步)。** @param path rawfile 文件夾路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回文件列表。*/static getRawFileList(path: string, isAsync = false): Array<string> | Promise<Array<string>> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getRawFileList(path) : manager.getRawFileListSync(path);}/*** 獲取 resources/rawfile 目錄下對應 rawfile 文件所在 HAP 的 descriptor 信息(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。* @returns 返回 RawFileDescriptor。*/static getRawFd(path: string, isAsync = false): resourceManager.RawFileDescriptor | Promise<resourceManager.RawFileDescriptor> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getRawFd(path) : manager.getRawFdSync(path);}/*** 關閉 resources/rawfile 目錄下 rawfile 文件所在 HAP 的 descriptor 信息(同步或異步)。** @param path rawfile 文件路徑。* @param isAsync 是否為異步操作,默認為 false。*/static closeRawFd(path: string, isAsync = false): void | Promise<void> {const manager = ResUtil.getResourceManager();return isAsync ? manager.closeRawFd(path) : manager.closeRawFdSync(path);}/*** 獲取設備的 Configuration(同步或異步)。** @param isAsync 是否為異步操作,默認為 false。* @returns 返回設備的 Configuration。*/static getConfiguration(isAsync = false): resourceManager.Configuration | Promise<resourceManager.Configuration> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getConfiguration() : manager.getConfigurationSync();}/*** 獲取設備的 DeviceCapability(同步或異步)。** @param isAsync 是否為異步操作,默認為 false。* @returns 返回設備的 DeviceCapability。*/static getDeviceCapability(isAsync = false): resourceManager.DeviceCapability | Promise<resourceManager.DeviceCapability> {const manager = ResUtil.getResourceManager();return isAsync ? manager.getDeviceCapability() : manager.getDeviceCapabilitySync();}/*** 應用運行時,加載指定的資源路徑,實現資源覆蓋。** @param path 資源路徑。*/static addResource(path: string): void {ResUtil.getResourceManager().addResource(path);}/*** 用戶運行時,移除指定的資源路徑,還原被覆蓋前的資源。** @param path 資源路徑。*/static removeResource(path: string): void {ResUtil.getResourceManager().removeResource(path);}/*** 判斷指定路徑是否是 rawfile 下的目錄。** @param path rawfile 路徑。* @returns true 表示是 rawfile 下的目錄,false 表示不是。*/static isRawDir(path: string): boolean {return ResUtil.getResourceManager().isRawDir(path);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900819.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900819.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900819.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

css使用mix-blend-mode的值difference實現內容和父節點反色

1. 使用場景 往往開發過程中&#xff0c;經常遇到產品說你這個背景圖和文字顏色太接近了&#xff0c;能不能適配下背景圖&#xff0c;讓用戶能夠看清具體內容是啥。 這么說吧&#xff0c;這種需求場景非常合理&#xff0c;因為你做開發就是要給用戶一個交代&#xff0c;給他們…

el-input 中 select 方法使用報錯:屬性“select”在類型“HTMLElement”上不存在

要解決該錯誤&#xff0c;需明確指定元素類型為 HTMLInputElement&#xff0c;因為 select() 方法屬于輸入元素。 步驟解釋&#xff1a; 類型斷言&#xff1a;使用 as HTMLInputElement 將元素類型斷言為輸入元素。 可選鏈操作符&#xff1a;保持 ?. 避免元素為 null 時出錯…

Mybatis Plus與SpringBoot的集成

Mybatis Plus與SpringBoot的集成 1.引入Maven 依賴2.配置application.yml文件3.創建實體類4.分頁插件5.邏輯刪除功能6.忽略特定字段7.自動填充 1.引入Maven 依賴 提前創建好一個SpringBoot項目&#xff0c;然后在項目中引入MyBatis Plus依賴 <dependency><groupId&g…

大數據學習(104)-clickhouse與hdfs

&#x1f34b;&#x1f34b;大數據學習&#x1f34b;&#x1f34b; &#x1f525;系列專欄&#xff1a; &#x1f451;哲學語錄: 用力所能及&#xff0c;改變世界。 &#x1f496;如果覺得博主的文章還不錯的話&#xff0c;請點贊&#x1f44d;收藏??留言&#x1f4dd;支持一…

【簡歷全景認知2】電子化時代對簡歷形式的降維打擊:從A4紙到ATS的生存游戲

一、當簡歷遇上數字洪流:傳統形式的式微 在1990年代,一份排版精美的紙質簡歷還能讓HR眼前一亮;但今天,超過75%的 Fortune 500 企業使用ATS(Applicant Tracking System)進行初篩,未優化的簡歷可能在5秒內就會淪為數字廢土。這種變遷本質上符合「技術接納生命周期」理論—…

esp32cam -> 服務器 | 手機 -> 服務器 直接服務器傳輸圖片

服務器先下載python &#xff1a; 一、Python環境搭建&#xff08;CentOS/Ubuntu通用&#xff09; 一條一條執行 安裝基礎依賴 # CentOS sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel # Ubuntu sudo apt update && sudo apt install b…

SeaTunnel系列之:Apache SeaTunnel編譯和安裝

Apache SeaTunnel編譯 Prepare編譯克隆源代碼本地安裝子項目從源代碼構建 SeaTunnel構建子模塊安裝 JetBrains IDEA Scala 插件安裝 JetBrains IDEA Lombok 插件代碼風格運行簡單示例不僅如此 安裝下載 SeaTunnel 發布包下載連接器插件從源代碼構建 SeaTunnel 運行 SeaTunnel 在…

JavaScript/React中,...(三個連續的點)被稱為 擴展運算符(Spread Operator) 或 剩余運算符(Rest Operator)

const processOrder (order) > {const tax order.total * 0.1;const finalAmount order.total tax;return { ...order, tax, finalAmount }; }; 解釋一下&#xff0c;特別&#xff1a;...?在JavaScript/React中&#xff0c;...&#xff08;三個連續的點&#xff09;被稱…

FRP的proxies只是建立通道,相當于建立與服務器溝通的不同通道而不是直接將路由器與服務器云端溝通

沒有更好的辦法了嗎&#xff0c;我看frpc.toml的里面可以設置兩個proxies那我esp32的監聽端口設置在frpc.toml里面它不也能跟云服務器建立聯系嗎&#xff0c;比如遠程與本地端口都配置為5112那云服務器接收到的5112訪問會以frp配置的本地端口5112轉發到frp客戶端的路由器&#…

#在docker中啟動mysql之類的容器時,沒有掛載的數據...在后期怎么把數據導出外部

如果要導出 Docker 容器內的 整個目錄&#xff08;包含所有文件及子目錄&#xff09;&#xff0c;可以使用以下幾種方法&#xff1a; 方法 1&#xff1a;使用 docker cp 直接復制目錄到宿主機 適用場景&#xff1a;容器正在運行或已停止&#xff08;但未刪除&#xff09;。 命…

Java的JDK、JRE、JVM關系與作用

Java的JDK、JRE、JVM關系與作用 java中的JDK、JRE和JVM是三個核心組件&#xff0c;各自承擔不同角色&#xff0c;且存在層級依賴關系 1. JVM&#xff08;Java Virtual Machine&#xff0c;Java虛擬機&#xff09; 是什么&#xff1a; JVM是虛擬的計算機&#xff0c;能夠執行…

C++學習之套接字并發服務器

目錄 1.昨天套接字服務器的弊端 2.如何通過多進程方式實現服務器并發 3.多進程服務器-1 4.多進程服務器-2 5.多進程版程序-回收子進程被信號中斷的處理 6.多線程版TCP服務處理思路 7.多線程并發服務器編寫 8.為什么不能把文件描述符地址傳到子線程中 9.多線程程序測試 …

機器學習新范式:Kubernetes + Kubeflow,解鎖模型訓練與部署的高效密碼

一、Kubernetes在機器學習模型訓練與部署中的作用 Kubernetes作為一個強大的容器編排平臺&#xff0c;為機器學習模型的訓練與部署提供了以下核心支持&#xff1a; 分布式訓練支持&#xff1a;Kubernetes能夠自動化部署和管理PyTorch等機器學習框架的分布式訓練任務。通過利用…

動態科技感html導航網站源碼

源碼介紹 動態科技感html導航網站源碼&#xff0c;這個設計完美呈現了科幻電影中的未來科技界面效果&#xff0c;適合展示技術類項目或作為個人作品集的入口頁面&#xff0c;自適應手機。 修改卡片中的鏈接指向你實際的HTML文件可以根據需要調整卡片內容、圖標和顏色要添加更…

數字內容智能推薦優化策略

個性化推薦算法構建路徑 構建高效數字內容體驗的推薦系統&#xff0c;需以多源數據融合為基礎框架。首先通過用戶畫像建模整合人口屬性、行為軌跡及興趣標簽&#xff0c;結合協同過濾與深度學習算法建立內容關聯矩陣。在此基礎上&#xff0c;引入上下文感知機制&#xff0c;動…

# 深度學習中的優化算法詳解

深度學習中的優化算法詳解 優化算法是深度學習的核心組成部分&#xff0c;用于最小化損失函數以更新神經網絡的參數。本文將詳細介紹深度學習中常用的優化算法&#xff0c;包括其概念、數學公式、代碼示例、實際案例以及圖解&#xff0c;幫助讀者全面理解優化算法的原理與應用…

汽車的四大工藝

文章目錄 沖壓工藝核心流程關鍵技術 焊接工藝核心流程 涂裝工藝核心流程 總裝工藝核心流程終檢與測試靜態檢查動態檢查四輪定位制動轉鼓測試淋雨測試總結 簡單總結下汽車的四大工藝&#xff08;從網上找了一張圖&#xff0c;感覺挺全面的&#xff09;。 沖壓工藝 將金屬板材通過…

Perl 發送郵件

Perl 發送郵件 概述 Perl 是一種強大的編程語言&#xff0c;廣泛應用于系統管理、網絡編程和數據分析等領域。其中&#xff0c;使用 Perl 發送郵件是一項非常實用的技能。本文將詳細介紹使用 Perl 發送郵件的方法&#xff0c;包括必要的配置、代碼示例以及注意事項。 準備工…

關于柔性數組

以前確實沒關注過這個問題&#xff0c;一直都是直接定義固定長度的數組&#xff0c;盡量減少指針的操作。 柔性數組主要是再結構體里面定義一個長度為0的數組&#xff0c;這里和定義一個指針式存在明顯去別的。定義一個指針會占用內存&#xff0c;但是定義一個長度為0的數組不會…

NOIP2011提高組.瑪雅游戲

目錄 題目算法標簽: 模擬, 搜索, d f s dfs dfs, 剪枝優化思路*詳細注釋版代碼精簡注釋版代碼 題目 185. 瑪雅游戲 算法標簽: 模擬, 搜索, d f s dfs dfs, 剪枝優化 思路 可行性剪枝 如果某個顏色的格子數量少于 3 3 3一定無解因為要求字典序最小, 因此當一個格子左邊有…