本模块提供获取pixelMap的能力,包括前景、背景、蒙版和分层图标。
说明:
本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
示例效果请以真机运行为准,当前IDE预览器不支持。
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor';
constructor()
创建DrawableDescriptor或LayeredDrawableDescriptor对象。对象构造需要使用全球化接口getDrawableDescriptor或getDrawableDescriptorByName。
系统接口: 此接口为系统接口。
系统能力: SystemCapability.ArkUI.ArkUI.Full
当传入资源id或name为普通图片时,生成DrawableDescriptor对象。
当传入资源id或name为包含前景和背景资源的json文件时,生成LayeredDrawableDescriptor对象。
drawble.json文件如下:
{
"layered-image":
{
"background" : "$media:background",
"foreground" : "$media:foreground"
}
}
示例:
// xxx.ets
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
@Entry
@Component
struct Index {
private resManager = getContext().resourceManager
build() {
Row() {
Column() {
Image((this.resManager.getDrawableDescriptor($r('app.media.icon').id) as LayeredDrawableDescriptor))
Image(((this.resManager.getDrawableDescriptor($r('app.media.icon')
.id) as LayeredDrawableDescriptor).getForeground()).getPixelMap())
}.height('50%')
}.width('50%')
}
}
getPixelMap(): image.PixelMap;
获取pixelMap。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
类型 | 说明 |
---|---|
image.PixelMap | PixelMap |
示例:
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let pixmap: DrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.icon')
.id)) as DrawableDescriptor;
let pixmapNew: object = pixmap.getPixelMap()
getPixelMap(): image.PixelMap;
获取前景、背景和蒙版融合裁剪后的pixelMap。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
类型 | 说明 |
---|---|
image.PixelMap | PixelMap |
示例:
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let pixmap: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.icon')
.id)) as LayeredDrawableDescriptor;
let pixmapNew: object = pixmap.getPixelMap()
getForeground(): DrawableDescriptor;
获取前景的DrawableDescriptor对象。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
类型 | 说明 |
---|---|
DrawableDescriptor | DrawableDescriptor对象 |
示例:
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let drawable: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.icon')
.id)) as LayeredDrawableDescriptor;
let drawableNew: object =drawable.getForeground()
getBackground(): DrawableDescriptor;
获取背景的DrawableDescriptor对象。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
类型 | 说明 |
---|---|
DrawableDescriptor | DrawableDescriptor对象 |
示例:
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let drawable: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.icon')
.id)) as LayeredDrawableDescriptor;
let drawableNew: object =drawable.getBackground()
getMask(): DrawableDescriptor;
获取蒙版的DrawableDescriptor对象。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
类型 | 说明 |
---|---|
DrawableDescriptor | DrawableDescriptor对象 |
示例:
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let drawable: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.icon')
.id)) as LayeredDrawableDescriptor;
let drawableNew: object =drawable.getMask()
static getMaskClipPath(): string
LayeredDrawableDescriptor的静态方法,获取系统内置的裁切路径参数。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
类型 | 说明 |
---|---|
string | 返回裁切路径的命令字符串 |
示例:
// xxx.ets
import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
@Entry
@Component
struct Index {
build() {
Row() {
Column() {
Image($r('app.media.icon'))
.width('200px').height('200px')
.clip(new Path({commands:LayeredDrawableDescriptor.getMaskClipPath()}))
Text(`获取系统内置的裁剪路径参数:`)
.fontWeight(800)
Text(JSON.stringify(LayeredDrawableDescriptor.getMaskClipPath()))
.padding({ left: 20, right: 20 })
}.height('100%').justifyContent(FlexAlign.Center)
}.width('100%')
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。