@ohos.arkui.drawableDescriptor (DrawableDescriptor)

The DrawableDescriptor module provides APIs for obtaining pixelMap objects, including the foreground, background, mask, and layered icons.

NOTE

The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.

You can preview how this component looks on a real device, but not in DevEco Studio Previewer.

Modules to Import

import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor';

DrawableDescriptor.constructor

constructor()

Creates a DrawableDescriptor or LayeredDrawableDescriptor object. The getDrawableDescriptor or getDrawableDescriptorByName API is required for object construction.

System API: This is a system API.

System capability: SystemCapability.ArkUI.ArkUI.Full

DrawableDescriptor

Creates a DrawableDescriptor object when the passed resource ID or name belongs to a common image.

LayeredDrawableDescriptor

Creates a LayeredDrawableDescriptor object when the passed resource ID or name belongs to a JSON file that contains foreground and background resources.

The drawable.json file is located under entry/src/main/resources/base/media in the project directory. Below shows the file content:

{
  "layered-image":
  {
    "background" : "$media:background",
    "foreground" : "$media:foreground"
  }
}

Example

// 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.drawable').id) as LayeredDrawableDescriptor))
        Image(((this.resManager.getDrawableDescriptor($r('app.media.drawable')
          .id) as LayeredDrawableDescriptor).getForeground()).getPixelMap())
      }.height('50%')
    }.width('50%')
  }
}

DrawableDescriptor.getPixelMap

getPixelMap(): image.PixelMap;

Obtains this pixelMap object.

System capability: SystemCapability.ArkUI.ArkUI.Full

Return value

Type Description
image.PixelMap PixelMap object.

Example

import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let pixmap: DrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.drawable')
  .id)) as DrawableDescriptor;
let pixmapNew: object = pixmap.getPixelMap()

LayeredDrawableDescriptor.getPixelMap

getPixelMap(): image.PixelMap;

Obtains the pixelMap object where the foreground, background, and mask are blended and cropped.

System capability: SystemCapability.ArkUI.ArkUI.Full

Return value

Type Description
image.PixelMap PixelMap object.

Example

import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let pixmap: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.drawable')
  .id)) as LayeredDrawableDescriptor;
let pixmapNew: object = pixmap.getPixelMap()

LayeredDrawableDescriptor.getForeground

getForeground(): DrawableDescriptor;

Obtains the DrawableDescriptor object of the foreground.

System capability: SystemCapability.ArkUI.ArkUI.Full

Return value

Type Description
DrawableDescriptor DrawableDescriptor object.

Example

import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let drawable: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.drawable')
  .id)) as LayeredDrawableDescriptor;
let drawableNew: object =drawable.getForeground()

LayeredDrawableDescriptor.getBackground

getBackground(): DrawableDescriptor;

Obtains the DrawableDescriptor object of the background.

System capability: SystemCapability.ArkUI.ArkUI.Full

Return value

Type Description
DrawableDescriptor DrawableDescriptor object.

Example

import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let drawable: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.drawable')
  .id)) as LayeredDrawableDescriptor;
let drawableNew: object =drawable.getBackground()

LayeredDrawableDescriptor.getMask

getMask(): DrawableDescriptor;

Obtains the DrawableDescriptor object of the mask.

System capability: SystemCapability.ArkUI.ArkUI.Full

Return value

Type Description
DrawableDescriptor DrawableDescriptor object.

Example

import { DrawableDescriptor, LayeredDrawableDescriptor } from '@ohos.arkui.drawableDescriptor'
let resManager = getContext().resourceManager
let drawable: LayeredDrawableDescriptor = (resManager.getDrawableDescriptor($r('app.media.drawable')
  .id)) as LayeredDrawableDescriptor;
let drawableNew: object =drawable.getMask()

LayeredDrawableDescriptor.getMaskClipPath

static getMaskClipPath(): string

Obtains the built-in clipping path parameters of the system. It is a static method of LayeredDrawableDescriptor.

System capability: SystemCapability.ArkUI.ArkUI.Full

Return value

Type Description
string String of the clipping path.

Example

// 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(`Obtain the built-in clip path parameters:`)
        .fontWeight(800)
      Text(JSON.stringify(LayeredDrawableDescriptor.getMaskClipPath()))
        .padding({ left: 20, right: 20 })
    }.height('100%').justifyContent(FlexAlign.Center)
  }.width('100%')
}
}