Android OS 中 onDraw 在 HarmonyOS 中的替代函数是什么?
What is the alternative function in HarmonyOS for onDraw in Android OS?
我正在使用 Java SDK 在 HarmonyOS 中实现自定义组件。在Android绘制自定义视图时,我们重写class视图中的onDraw方法。
在HarmonyOS中,class组件没有onDraw方法。如何解决?
您说得对,onDraw()
在您的自定义组件中的 Component class. But, we have another way to achieve the same functionality. You can implements
Component.DrawTask 中无法实现相同的功能。您需要在构造函数中调用 addDrawTask 来添加绘图任务。
因此,您的自定义组件代码将如下所示 -
import ohos.agp.components.AttrSet;
import ohos.agp.components.Component;
import ohos.agp.render.Canvas;
import ohos.app.Context;
import org.jetbrains.annotations.Nullable;
public class CustomComponent extends Component implements Component.DrawTask {
public CustomComponent(Context context, @Nullable AttrSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
addDrawTask(this);
}
@Override
public void onDraw(Component component, Canvas canvas) {
//Do your stuff here
}
}
您可以通过实现 Component.DrawTask
接口来使用 onDraw
方法。首先需要在构造函数中调用addDrawTask
添加绘图任务。示例代码如下:
public class MyComponent extends Component implements Component.DrawTask {
public MyComponent(Context context) {
super(context);
addDrawTask(this);
}
@Override
public void onDraw(Component component, Canvas canvas) {
// draw
}
}
我正在使用 Java SDK 在 HarmonyOS 中实现自定义组件。在Android绘制自定义视图时,我们重写class视图中的onDraw方法。
在HarmonyOS中,class组件没有onDraw方法。如何解决?
您说得对,onDraw()
在您的自定义组件中的 Component class. But, we have another way to achieve the same functionality. You can implements
Component.DrawTask 中无法实现相同的功能。您需要在构造函数中调用 addDrawTask 来添加绘图任务。
因此,您的自定义组件代码将如下所示 -
import ohos.agp.components.AttrSet;
import ohos.agp.components.Component;
import ohos.agp.render.Canvas;
import ohos.app.Context;
import org.jetbrains.annotations.Nullable;
public class CustomComponent extends Component implements Component.DrawTask {
public CustomComponent(Context context, @Nullable AttrSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
addDrawTask(this);
}
@Override
public void onDraw(Component component, Canvas canvas) {
//Do your stuff here
}
}
您可以通过实现 Component.DrawTask
接口来使用 onDraw
方法。首先需要在构造函数中调用addDrawTask
添加绘图任务。示例代码如下:
public class MyComponent extends Component implements Component.DrawTask {
public MyComponent(Context context) {
super(context);
addDrawTask(this);
}
@Override
public void onDraw(Component component, Canvas canvas) {
// draw
}
}