HarmonyOS 自定义绘制接口怎么使用
我们使用自定义绘制相关的框架:
import drawing from “@ohos.graphics.drawing”
import common2D from ‘@ohos.graphics.common2D’
在文档上看到有关于图片的绘制方法,但是调用一直失败不知道哪里有问题(绘制图形,文字都可以正常只是现在绘制图片的接口一直异常),使用代码如下:
import { NodeController, FrameNode, RenderNode, Size } from "@ohos.arkui.node"
import drawing from "@ohos.graphics.drawing"
import common2D from '@ohos.graphics.common2D'
import componentSnapshot from '@ohos.arkui.componentSnapshot';
import image from '@ohos.multimedia.image';
import resourceManager from '@ohos.resourceManager';
import hilog from '@ohos.hilog';
class ImageRenderNode extends RenderNode {
async draw(context: DrawContext) {
try {
const canvas = context.canvas;
const image1_rawFileDescriptor = getContext().resourceManager.getRawFdSync('1.jpeg')
const imageSource: image.ImageSource = image.createImageSource(image1_rawFileDescriptor);
const imagePixelMap = await imageSource.createPixelMap()
const tmp =await imagePixelMap.getImageInfo()
canvas.drawImage(imagePixelMap, 0, 0)
} catch (e) {
console.log('')
}
}
}
class ImageNodeController extends NodeController {
private rootNode: FrameNode | null = null;
rootRenderNode: RenderNode | null = null;
width: number = 0;
height: number = 0;
makeNode(uiContext: UIContext): FrameNode {
this.rootNode = new FrameNode(uiContext);
if (this.rootNode !== null) {
this.rootRenderNode = this.rootNode.getRenderNode();
}
return this.rootNode;
}
aboutToResize(size: Size): void {
if (this.rootNode) {
this.width = size.width
this.height = size.height
if (this.rootRenderNode) {
this.rootRenderNode.frame = {
x: 0,
y: 0,
width: this.width,
height: this.height
};
const tmp = new ImageRenderNode()
tmp.backgroundColor = 0XFFFFF000;
tmp.frame = {
x: 0,
y: 0,
width: this.width,
height: this.height
};
this.rootRenderNode.appendChild(tmp)
}
}
}
}
@Entry
@Component
struct Page2 {
private imageNodeController: ImageNodeController = new ImageNodeController()
build() {
Column() {
NodeContainer(this.imageNodeController)
.width('100%')
.height('60%')
}
.backgroundColor(Color.Gray)
.height('100%')
.width('100%')
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 自定义接口如何使用?
224浏览 • 1回复 待解决
HarmonyOS 自定义字体绘制
203浏览 • 1回复 待解决
HarmonyOS NativeWindow中怎么自定义绘制区域的布局
216浏览 • 1回复 待解决
HarmonyOS 关于自定义绘制组件Canvas的使用异常
251浏览 • 1回复 待解决
HarmonyOS 有没有自定义视图绘制的案例, 绘制渐变曲线?
437浏览 • 1回复 待解决
HarmonyOS 自定义弹窗怎么设置自定义动画?
517浏览 • 1回复 待解决
HarmonyOS使用Canvas自定义绘制内容后,如何根据onTouch事件动态更新绘制的内容?
524浏览 • 1回复 待解决
自定义Component在绘制圆角矩形时,绘制后出现黑色阴影
11204浏览 • 2回复 待解决
#鸿蒙通关秘籍#如何在绘制组件中使用自定义样式进行修改?
276浏览 • 1回复 待解决
HarmonyOS 使用自定义字体
416浏览 • 1回复 待解决
HarmonyOS 怎么自定义装饰器
168浏览 • 1回复 待解决
如何使用EGL绘制自定义动画?请提供一个简单示例
2154浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用CanvasRenderingContext2D对象绘制自定义矩形?
219浏览 • 1回复 待解决
HarmonyOS @Component修饰的自定义组件,是否有接口可以destory该自定义组件
156浏览 • 1回复 待解决
HarmonyOS 使用Canvas自定义绘制进行大量图像绘制时,render_service耗时较大,出现明显卡顿
113浏览 • 1回复 待解决
HarmonyOS canvas组件绘制文字时如何使用第三方自定义字体
215浏览 • 1回复 待解决
HarmonyOS 自定义组件如何绘制一个三角
212浏览 • 1回复 待解决
HarmonyOS 使用全局自定义弹窗
168浏览 • 1回复 待解决
HarmonyOS 自定义组件的使用
40浏览 • 1回复 待解决
HarmonyOS 自定义工具类中怎么弹出CustomDialogController自定义弹框?
614浏览 • 1回复 待解决
HarmonyOS XComponent(自定义绘制组件)是否可以在应用中常驻
212浏览 • 1回复 待解决
HarmonyOS Notification怎么自定义通知声音?
26浏览 • 1回复 待解决
HarmonyOS 怎么自定义Tab的Tabbar
161浏览 • 1回复 待解决
HarmonyOS 组件携带自定义参数的接口是哪个
188浏览 • 1回复 待解决
代码中需要修改三个地方:
1.文件放在rawfile下面;
2.创建pixelmap用这个接口:imageSource.createPixelMapSync();
3.drawimage要设置options ;