鸿蒙OS ComponentProvider
ComponentProvider
java.lang.Object
|---ohos.agp.components.ComponentProvider
public class ComponentProvider
extends Object
implements Sequenceable
为跨进程显示提供远程组件。
该类提供了一组用于修改远程组件内容的基本操作。 它通常用于开发显示在通知栏中的通知以及桌面或主屏幕上的小部件。
嵌套类摘要
修饰符和类型 | 类 | 描述 |
---|---|---|
static class | ComponentProvider.Action | 描述可以对远程组件执行的操作。 |
static class | ComponentProvider.ComponentProviderException | 对远程组件操作期间发生的错误引发异常。 |
从接口 ohos.utils.Sequenceable 继承的嵌套类/接口 |
---|
Sequenceable.ProducerT |
字段摘要
修饰符和类型 | 字段 | 描述 |
---|---|---|
static int | APPLY_TYPE_ACTIONS_ONLY | 在 ComponentProvider 对象更新后应用所有操作。 |
static int | APPLY_TYPE_LAYOUT_AND_ACTIONS | 在创建 ComponentProvider 对象后扩展布局并应用所有操作。 |
构造函数摘要
构造函数 | 描述 |
---|---|
ComponentProvider() | 用于创建 ComponentProvider 的默认构造函数。 |
ComponentProvider(int layoutId, Context context) | 用于根据应用程序的布局 ID 和上下文创建 ComponentProvider 实例的构造函数。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | applyAction(ComponentContainer root) | 应用当前进程中的所有操作。 |
CollectionComponentProvider.Action | getActions() | 获取所有动作。 |
ComponentContainer | getAllComponents() | 获取 ComponentContainer 中的所有组件。 |
int | getApplyType() | 获取操作类型。 |
String | getDefaultBundleName() | 获取默认捆绑包名称。 |
int | getLayoutId() | 获取布局ID。 |
void | inflateLayout(Context context) | 根据布局定义扩展布局。 |
boolean | isValidComponentId(int componentId) | 根据提供的组件 ID 检查组件是否有效。 |
boolean | marshalling(Parcel out) | 编组 ComponentProvider 对象,然后将其写入 Parcelobject。 |
void | mergeAction(ComponentProvider.Action action) | 将 ComponentProvider.Action 对象合并到一个 ComponentProvider 对象中。 |
void | mergeActions(CollectionComponentProvider.Action actions) | 将所有 Action 对象合并并存储到一个 ComponentProvider 对象中。 |
void | resetActions() | 清除当前 ComponentProvider 对象中的所有操作。 |
ComponentProvider.Action | setAccessibilityDescription(int componentId, String description) | 设置指定组件的可访问性模式的描述.. |
boolean | setApplyType(int applyType) | 设置操作类型。 |
ComponentProvider.Action | setBackgroundPixelMap(int componentId, PixelMap pixelMap) | 设置组件的背景图像。 |
ComponentProvider.Action | setBoolean(int componentId, String methodName, boolean value) | 调用组件的指定接口。 |
ComponentProvider.Action | setClipToContourEnabled(int componentId, boolean enable) | 设置组件的轮廓是否可以用于内容裁剪。 |
ComponentProvider.Action | setComponentContainerLayoutConfig(int componentId, ComponentContainer.LayoutConfig params) | 设置组件的边距布局参数。 |
void | setDefaultBundleName(String bundleName) | 设置获取资源的默认捆绑包名称。 |
ComponentProvider.Action | setDouble(int componentId, String methodName, double value) | 调用组件的指定接口。 |
ComponentProvider.Action | setFloat(int componentId, String methodName, float value) | 调用组件的指定接口。 |
ComponentProvider.Action | setImageContent(int componentId, int resId) | 设置要在指定图像组件上显示的内容。 |
ComponentProvider.Action | setImagePixelMap(int componentId, PixelMap pixelMap) | 设置组件的图像内容。 |
ComponentProvider.Action | setInt(int componentId, String methodName, int value) | 调用组件的指定接口。 |
ComponentProvider.Action | setIntentAgent(int componentId, IntentAgent intent) | 设置远程组件的 IntentAgent 对象。 |
ComponentProvider.Action | setLong(int componentId, String methodName, long value) | 调用组件的指定接口。 |
ComponentProvider.Action | setPadding(int componentId, int top, int bottom, int left, int right) | 设置组件的填充。 |
ComponentProvider.Action | setPixelMap(int componentId, String methodName, PixelMap value) | 调用组件的指定接口。 |
ComponentProvider.Action | setProgressBar(int componentId, int max, int progress, boolean indeterminate) | 设置 ProgressBar 的进度。 |
ComponentProvider.Action | setString(int componentId, String methodName, String value) | 调用组件的指定接口。 |
ComponentProvider.Action | setText(int componentId, String text) | 设置组件的文本内容。 |
ComponentProvider.Action | setTextAlignment(int componentId, int textAlignment) | 设置组件的文本对齐模式。 |
ComponentProvider.Action | setTextColor(int componentId, Color color) | 设置组件的文本颜色。 |
ComponentProvider.Action | setTextSize(int componentId, int size) | 设置组件的文本大小。 |
ComponentProvider.Action | setTextSize(int componentId, int size, Text.TextSizeType textSizeType) | 设置组件的文本大小。 |
ComponentProvider.Action | setVisibility(int componentId, int visibility) | 设置组件的可见性。 |
boolean | unmarshalling(Parcel in) | 使用从 Parcel 对象读取的内容解组(或初始化) ComponentProvider 对象。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 ohos.utils.Sequenceable 继承的方法 |
---|
hasFileDescriptor |
字段详细信息
APPLY_TYPE_ACTIONS_ONLY
public static final int APPLY_TYPE_ACTIONS_ONLY
在 ComponentProvider 对象更新后应用所有操作。
这允许在另一个应用程序中更新组件。
APPLY_TYPE_LAYOUT_AND_ACTIONS
public static final int APPLY_TYPE_LAYOUT_AND_ACTIONS
在创建 ComponentProvider 对象后扩展布局并应用所有操作。
这允许创建的组件显示在另一个应用程序中。
构造函数详细信息
ComponentProvider
public ComponentProvider()
用于创建 ComponentProvider 的默认构造函数。
ComponentProvider
public ComponentProvider(int layoutId, Context context)
用于根据应用程序的布局 ID 和上下文创建 ComponentProvider 实例的构造函数。
参数:
参数名称 | 参数描述 |
---|---|
layoutId | 表示布局ID。 |
context | 指示应用程序的上下文。 |
方法详情
setApplyType
public boolean setApplyType(int applyType)
设置操作类型。
操作类型可以是 APPLY_TYPE_LAYOUT_AND_ACTIONS 或 APPLY_TYPE_ACTIONS_ONLY。 APPLY_TYPE_LAYOUT_AND_ACTIONS 类型意味着膨胀布局并应用所有动作,而 APPLY_TYPE_ACTIONS_ONLY 类型意味着只应用所有动作。
参数:
参数名称 | 参数描述 |
---|---|
applyType | 表示操作类型,只能是APPLY_TYPE_LAYOUT_AND_ACTIONS或APPLY_TYPE_ACTIONS_ONLY。 这两个以外的值将导致调用当前方法失败。 |
返回:
如果操作类型设置成功,则返回true; 否则返回 false。
getApplyType
public int getApplyType()
获取操作类型。
返回:
返回操作类型,可以是 APPLY_TYPE_LAYOUT_AND_ACTIONS 或 APPLY_TYPE_ACTIONS_ONLY。
setDefaultBundleName
public void setDefaultBundleName(String bundleName)
设置获取资源的默认捆绑包名称。
参数:
参数名称 | 参数描述 |
---|---|
bundleName | 指示要设置的捆绑包名称。 在将 ohos 资源转换为其他系统可以识别的资源之前,您需要通过 bundle 名称来定位 ohos 资源。 如果bundle名称不正确,将无法定位到ohos资源,转换失败。 |
getDefaultBundleName
public String getDefaultBundleName()
获取默认捆绑包名称。
返回:
返回默认捆绑包名称。
isValidComponentId
public boolean isValidComponentId(int componentId)
根据提供的组件 ID 检查组件是否有效。
此方法查找与提供的组件 ID 对应的 ComponentProvider。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
返回:
如果找到具有给定 ID 的组件,则返回 true; 否则返回 false。
marshalling
public boolean marshalling(Parcel out)
编组 ComponentProvider 对象,然后将其写入 Parcelobject。
指定者:
接口 Sequenceable 中的编组
参数:
参数名称 | 参数描述 |
---|---|
out | 指示将被编组的 ComponentProvider 对象写入的对象。 |
返回:
如果封送成功,则返回 true; 否则返回 false。
unmarshalling
public boolean unmarshalling(Parcel in)
使用从 Parcel 对象读取的内容解组(或初始化) ComponentProvider 对象。
指定者:
在接口 Sequenceable 中解组
参数:
参数名称 | 参数描述 |
---|---|
in | 指示要解组的 ComponentProvider 对象。 |
返回:
如果解组(或初始化) ComponentProvider 对象成功,则返回 true,否则返回 false。
inflateLayout
public void inflateLayout(Context context)
根据布局定义扩展布局。
如果需要显示 ComponentProvider 中的布局,请根据应用的 Context 对布局进行充气。
参数:
参数名称 | 参数描述 |
---|---|
context | 指示当前应用程序的上下文。 |
getAllComponents
public ComponentContainer getAllComponents()
获取 ComponentContainer 中的所有组件。
返回:
返回包含所有组件的 ComponentContainer 对象。
applyAction
public void applyAction(ComponentContainer root)
应用当前进程中的所有操作。
参数:
参数名称 | 参数描述 |
---|---|
root | 表示 ComponentProvider 对象的所有组件。 |
getActions
public CollectionComponentProvider.Action getActions()
获取所有动作。
返回:
返回所有 ComponentProvider.Action 对象。
getLayoutId
public int getLayoutId()
获取布局ID。
返回:
返回布局 ID。
mergeActions
public void mergeActions(CollectionComponentProvider.Action actions)
将所有 Action 对象合并并存储到一个 ComponentProvider 对象中。
参数:
参数名称 | 参数描述 |
---|---|
actions | 表示 Action 对象的列表。 |
setTextSize
public ComponentProvider.Action setTextSize(int componentId, int size)
设置组件的文本大小。
此方法等效于 Text#setTextSize(int)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
size | 指示文本大小。 |
返回:
返回动作对象。
setTextSize
public ComponentProvider.Action setTextSize(int componentId, int size, Text.TextSizeType textSizeType)
设置组件的文本大小。
此方法等效于 Text#setTextSize(int, ohos.agp.components.Text.TextSizeType)。 您需要调用 applyAction(ohos.agp.components.ComponentContainer) 以使该方法生效。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
size | 指示文本大小。 |
textSizeType | 指示文本大小的单位,在 Text.TextSizeType 中枚举。 |
返回:
返回一个动作对象。
setTextColor
public ComponentProvider.Action setTextColor(int componentId, Color color)
设置组件的文本颜色。
此方法等效于 Text#setTextColor(Color)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
color | 指示要设置为的文本颜色。 |
返回:
返回 Action 对象。
setTextAlignment
public ComponentProvider.Action setTextAlignment(int componentId, int textAlignment)
设置组件的文本对齐模式。
此方法等效于 Text#setTextAlignment(int)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
textAlignment | 指示要设置的文本对齐模式。 |
返回:
返回 Action 对象。
setComponentContainerLayoutConfig
public ComponentProvider.Action setComponentContainerLayoutConfig(int componentId, ComponentContainer.LayoutConfig params)
设置组件的边距布局参数。
该方法等价于 Component#setLayoutConfig(ComponentContainer.LayoutConfig)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
params | 表示要设置的布局参数。 |
返回:
返回 Action 对象。
setVisibility
public ComponentProvider.Action setVisibility(int componentId, int visibility)
设置组件的可见性。
此方法等效于 Component#setVisibility(int)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
visibility | 指示组件的可见性。 |
返回:
返回 Action 对象。
setProgressBar
public ComponentProvider.Action setProgressBar(int componentId, int max, int progress, boolean indeterminate)
设置 ProgressBar 的进度。
此方法等效于 ProgressBar#setMaxValue(int)、ProgressBar#setProgressValue(int) 和 ProgressBar#setIndeterminate(boolean)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
max | 表示进度条的最大值。 |
progress | 表示当前进度。 |
indeterminate | 指示进度是否不确定。 true 表示进度不确定; false 表示其他情况。 |
返回:
返回 Action 对象。
setPadding
public ComponentProvider.Action setPadding(int componentId, int top, int bottom, int left, int right)
设置组件的填充。
此方法等效于 Component#setPadding(int, int, int, int)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
top | 指示顶部填充的像素数。 |
bottom | 指示底部填充的像素数。 |
left | 指示左侧填充的像素数。 |
right | 指示右侧填充的像素数。 |
返回:
返回 Action 对象。
setText
public ComponentProvider.Action setText(int componentId, String text)
设置组件的文本内容。
此方法等效于 Text#setText(String)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
text | 指示要为组件设置的文本内容。 |
返回:
返回 Action 对象。
setAccessibilityDescription
public ComponentProvider.Action setAccessibilityDescription(int componentId, String description)
设置指定组件的可访问性模式的描述..
此方法等效于 Component#setAccessibilityDescription(String),不同之处在于您必须调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
description | 表示要设置的描述。 |
返回:
返回 Action 对象。
setClipToContourEnabled
public ComponentProvider.Action setClipToContourEnabled(int componentId, boolean enable)
设置组件的轮廓是否可以用于内容裁剪。
此方法等效于 ohos.agp.components.Component#setClipToContourEnabled(boolean),不同之处在于您必须调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
enable | 指示是否支持剪辑。 |
返回:
返回 Action 对象。
mergeAction
public void mergeAction(ComponentProvider.Action action)
将 ComponentProvider.Action 对象合并到一个 ComponentProvider 对象中。
参数:
参数名称 | 参数描述 |
---|---|
action | 指示要执行的合并操作。 |
resetActions
public void resetActions()
清除当前 ComponentProvider 对象中的所有操作。
setInt
public ComponentProvider.Action setInt(int componentId, String methodName, int value)
调用组件的指定接口。 该接口只接受一个 int 类型的参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setString
public ComponentProvider.Action setString(int componentId, String methodName, String value)
调用组件的指定接口。 该接口只接受一个字符串类型的参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setFloat
public ComponentProvider.Action setFloat(int componentId, String methodName, float value)
调用组件的指定接口。 该接口只接受一个浮点型参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setDouble
public ComponentProvider.Action setDouble(int componentId, String methodName, double value)
调用组件的指定接口。 该接口只接受一个双精度类型的参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setLong
public ComponentProvider.Action setLong(int componentId, String methodName, long value)
调用组件的指定接口。 该接口只接受一个 long 类型的参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setBoolean
public ComponentProvider.Action setBoolean(int componentId, String methodName, boolean value)
调用组件的指定接口。 该接口只接受一个布尔类型的参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setPixelMap
public ComponentProvider.Action setPixelMap(int componentId, String methodName, PixelMap value)
调用组件的指定接口。 该接口只接受一个 PixelMap 参数。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
methodName | 指示要调用的接口的名称。 |
value | 指示要调用的接口的参数。 |
返回:
返回 Action 对象。
setImagePixelMap
public ComponentProvider.Action setImagePixelMap(int componentId, PixelMap pixelMap)
设置组件的图像内容。
此方法等效于 Image#setPixelMap(PixelMap)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
pixelMap | 表示要设置的图像内容。 |
返回:
返回 Action 对象。
setImageContent
public ComponentProvider.Action setImageContent(int componentId, int resId)
设置要在指定图像组件上显示的内容。
该方法等价于Image#setPixelMap(int)。 您需要调用 applyAction(ohos.agp.components.ComponentContainer) 以使该方法生效。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示图片组件的ID。 |
resId | 表示要在图像组件上显示的内容的资源ID。 内容可以是 PNG、SVG 或其他适用格式的图像。 |
返回:
返回一个 Action 对象。
setBackgroundPixelMap
public ComponentProvider.Action setBackgroundPixelMap(int componentId, PixelMap pixelMap)
设置组件的背景图像。
此方法等效于 Component#setBackground(Element)。 但是,它需要您手动调用 applyAction(ohos.agp.components.ComponentContainer)。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示组件ID。 |
pixelMap | 指示要设置的背景图像。 |
返回:
返回 Action 对象。
setIntentAgent
public ComponentProvider.Action setIntentAgent(int componentId, IntentAgent intent)
设置远程组件的 IntentAgent 对象。
参数:
参数名称 | 参数描述 |
---|---|
componentId | 表示远程组件ID。 |
intent | 表示使用意图。 |
返回:
返回 Action 对象。
更多建议: