ToB企服应用市场:ToB评测及商务社交产业平台
标题:
鸿蒙API13开发【@ohos.font (注册自界说字体)】UI界面API
[打印本页]
作者:
傲渊山岳
时间:
前天 02:55
标题:
鸿蒙API13开发【@ohos.font (注册自界说字体)】UI界面API
本模块提供注册自界说字体。
说明
本模块首批接口从API version 9开始支持。后续版本的新增接口,接纳上角标单独标记接口的起始版本。
本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用
从API version 10开始,可以通过使用[UIContext]中的[getFont]方法获取当前UI上下文关联的[Font]对象。
导入模块
import { font } from '@kit.ArkUI'
复制代码
font.registerFont
registerFont(options: FontOptions): void
在字体管理中注册自界说字体。
元服务API:
从API version 11开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填说明options[FontOptions]是注册的自界说字体信息。
FontOptions
元服务API:
从API version 11开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明familyNamestring[Resource]10+是familySrcstring[Resource]10+是
示例:
说明
推荐通过使用[UIContext]中的[getFont]方法获取当前UI上下文关联的[Font]对象。
// xxx.etsimport { font } from '@kit.ArkUI'
;@Entry@Componentstruct FontExample { @State message: string = 'Hello World' // iconFont示例,假设0000为指定icon的Unicode,现实需要开发者从注册的iconFont的ttf文件内里获取Unicode @State unicode: string = '\u0000' @State codePoint: string = String.fromCharCode(0x0000) aboutToAppear() { // familyName和familySrc都支持体系Resource font.registerFont({ // 发起使用 this.getUIContext().getFont().registerFont()接口 familyName: $r('app.string.font_name'), familySrc: $r('app.string.font_src') }) // familySrc支持RawFile font.registerFont({ familyName: 'mediumRawFile', familySrc: $rawfile('font/medium.ttf') }) // 注册iconFont font.registerFont({ familyName: 'iconFont', familySrc: '/font/iconFont.ttf' }) // familyName和familySrc都支持string font.registerFont({ familyName: 'medium', familySrc: '/font/medium.ttf' // font文件夹与pages目次同级 }) } build() { Column() { Text(this.message) .align(Alignment.Center) .fontSize(20) .fontFamily('medium') // medium:注册自界说字体的名字($r('app.string.mediumFamilyName')、'mediumRawFile'等已注册字体也能正常使用) // 使用iconFont的两种方式 Text(this.unicode) .align(Alignment.Center) .fontSize(20) .fontFamily('iconFont') Text(this.codePoint) .align(Alignment.Center) .fontSize(20) .fontFamily('iconFont') }.width('100%') }}
复制代码
说明
应用若需全局使用自界说字体,请在EntryAbility.ets文件的[onWindowStageCreate]生命周期中,通过[windowStage.loadContent]回调注册。
在HSP工程中,不推荐接纳相对路径的方式注册自界说字体。
font.getSystemFontList10+
getSystemFontList(): Array
获取风格字体列表。
元服务API:
从API version 11开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
返回值:
类型说明Array体系的字体名列表。 说明
该接口仅在2in1设备上生效。
示例:
说明
推荐通过使用[UIContext]中的[getFont]方法获取当前UI上下文关联的[Font]对象。
// xxx.etsimport { font } from '@kit.ArkUI'
;@Entry@Componentstruct FontExample { fontList: Array<string> = new Array<string>(); build() { Column() { Button("getSystemFontList") .width('60%') .height('6%') .onClick(()=>{ this.fontList = font.getSystemFontList() // 发起使用 this.getUIContext().getFont().getSystemFontList()接口 }) }.width('100%') }}
复制代码
font.getFontByName10+
getFontByName(fontName: string): FontInfo
根据传入的体系字体名称获取体系字体的干系信息。
元服务API:
从API version 11开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填说明fontNamestring是体系的字体名。
返回值:
类型说明FontInfo字体的具体信息。
FontInfo10+
元服务API:
从API version 11开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明pathstring是体系字体的文件路径。postScriptNamestring是体系字体的postScript名称。fullNamestring是体系字体的名称。familystring是体系字体的字体家属。subfamilystring是体系字体的子字体家属。weightnumber是体系字体的粗细程度,单位px。widthnumber是体系字体的宽窄风格属性,单位px。italicboolean是体系字体是否倾斜。monoSpaceboolean是体系字体是否紧凑。symbolicboolean是体系字体是否支持符号字体。
示例:
说明
推荐通过使用[UIContext]中的[getFont]方法获取当前UI上下文关联的[Font]对象。
// xxx.etsimport { font } from '@kit.ArkUI'
;@Entry@Componentstruct FontExample { fontList: Array<string> = new Array<string>(); fontInfo: font.FontInfo = font.getFontByName(''); build() { Column() { Button("getFontByName") .onClick(() => { this.fontInfo = font.getFontByName('HarmonyOS Sans Italic') // 发起使用 this.getUIContext().getFont().getFontByName()接口 console.log("getFontByName(): path = " + this.fontInfo.path) console.log("getFontByName(): postScriptName = " + this.fontInfo.postScriptName) console.log("getFontByName(): fullName = " + this.fontInfo.fullName) console.log("getFontByName(): Family = " + this.fontInfo.family) console.log("getFontByName(): Subfamily = " + this.fontInfo.subfamily) console.log("getFontByName(): weight = " + this.fontInfo.weight) console.log("getFontByName(): width = " + this.fontInfo.width) console.log("getFontByName(): italic = " + this.fontInfo.italic) console.log("getFontByName(): monoSpace = " + this.fontInfo.monoSpace) console.log("getFontByName(): symbolic = " + this.fontInfo.symbolic) }) }.width('100%') }}
复制代码
font.getUIFontConfig11+
getUIFontConfig() : UIFontConfig
获取体系的UI字体配置。
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
返回值:
类型说明[UIFontConfig]体系的UI字体配置信息。
UIFontConfig11+
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明fontDirArray是体系字体文件所在的路径。genericArray<[UIFontGenericInfo]>是体系所支持的通用字体集列表。fallbackGroupsArray<[UIFontFallbackGroupInfo]>是备用字体集。
UIFontGenericInfo11+
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明familystring是字体集名,字体文件中指定的"family"值。aliasArray<[UIFontAliasInfo]>是别名列表。adjustArray<[UIFontAdjustInfo]>是字体原本的weight值对应需显示的值。
UIFontFallbackGroupInfo11+
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明fontSetNamestring是备用字体集所对应的字体集名称。fallbackArray<[UIFontFallbackInfo]>是表示以下列表为该字体集的备用字体,如果fontSetName为"",表示可以作为全部字体集的备用字体。
UIFontAliasInfo11+
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明namestring是别名名称。weightnumber是当weight>0时表示此字体集只包含所指定weight的字体,当weight=0时,表示此字体集包含全部字体。
UIFontAdjustInfo11+
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明weightnumber是字体原本的weight值。tonumber是字体在应用中显示的weight值。
UIFontFallbackInfo11+
元服务API:
从API version 12开始,该接口支持在元服务中使用。
体系能力:
SystemCapability.ArkUI.ArkUI.Full
名称类型必填说明languagestring是字体集所支持的语言类型,语言格式为bcp47。familystring是字体集名,字体文件中指定的"family"值。
示例:
// xxx.etsimport { font } from '@kit.ArkUI'
;@Entry@Componentstruct FontExample { build() { Column() { Button("getUIFontConfig") .width('60%') .height('6%') .margin(50) .onClick(()=>{ let fontConfig = font.getUIFontConfig(); console.log("font-dir -----------" + String(fontConfig.fontDir.length)); for (let i = 0; i < fontConfig.fontDir.length; i ++) { console.log(fontConfig.fontDir[i]); } console.log("generic-------------" + String(fontConfig.generic.length)); for (let i = 0; i < fontConfig.generic.length; i ++){ console.log("family:" + fontConfig.generic[i].family); for (let j = 0; j < fontConfig.generic[i].alias.length; j ++){ console.log(fontConfig.generic[i].alias[j].name + " " + fontConfig.generic[i].alias[j].weight); } for (let j = 0; j < fontConfig.generic[i].adjust.length; j ++){ console.log(fontConfig.generic[i].adjust[j].weight + " " + fontConfig.generic[i].adjust[j].to); } } console.log("fallback------------" + String(fontConfig.fallbackGroups.length)); for (let i = 0; i < fontConfig.fallbackGroups.length; i ++){ console.log("fontSetName:" + fontConfig.fallbackGroups[i].fontSetName); for (let j = 0; j < fontConfig.fallbackGroups[i].fallback.length; j ++){ console.log("language:" + fontConfig.fallbackGroups[i].fallback[j].language + " family:" + fontConfig.fallbackGroups[i].fallback[j].family); } } }) }.width('100%') }}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4