HarmonyOS 鸿蒙Next shape画虚线

发布于 1周前 作者 bupafengyu 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next shape画虚线

我用shape画一条虚线,但是无法设置虚线沾满全屏, 请问哪些属性是控制当前虚线沾满全屏的,希望有大神能帮忙修改一下 代码如下:  

// xxx.ets

@Entry
@Component
struct ShapeExample {
build() {
Column() {
Shape() {
Path().width(300).height(50).commands(‘M0 0 L900 0’)
}
.width(300)
.height(10)
.viewPort({
x: 0,
y: 0,
width: 350,
height: 10
})
.stroke(0xFF333333)
.strokeWidth(3)
.strokeDashArray([10])
}.width(‘100%’).margin({ top: 15 })
}
}

2 回复
设置Path().width(300).height(50).commands('M0 0 L1200 0')即可。commands绘制命令中,M0 0代表从(0,0)坐标开始,L1200 0代表绘制当前点到(1200,0)点的直线,并将(1200 ,0)点作为新子路径的起始点。当横坐标为900时,小于屏幕宽度,所以虚线无法占满全屏。

具体操作参考如下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-drawing-components-path-V5#commands-1

在HarmonyOS鸿蒙系统中绘制虚线,可以通过自定义绘图逻辑来实现。HarmonyOS提供了Canvas类来支持图形绘制,你可以通过重写自定义View的onDraw方法来实现虚线的绘制。

具体步骤如下:

  1. 创建自定义View:首先,你需要创建一个自定义的View类,继承自系统的View类。

  2. 重写onDraw方法:在onDraw方法中,使用Canvas类提供的方法进行绘制。为了绘制虚线,你可以使用PathEffect类中的DashPathEffect来实现。

  3. 设置DashPathEffect:在绘制路径之前,设置Paint对象的PathEffect属性为DashPathEffect,通过DashPathEffect的构造函数可以指定虚线的样式,包括线段长度和间隔长度。

  4. 调用Canvas的drawLine方法:使用设置好Paint对象的Canvas的drawLine方法来绘制虚线。

示例代码片段(简化版,未包含完整类定义和导入语句):

Paint paint = new Paint();
float[] intervals = {10, 10}; // 线段长度10,间隔长度10
DashPathEffect dashPathEffect = new DashPathEffect(intervals, 0);
paint.setPathEffect(dashPathEffect);
paint.setColor(Color.BLACK);
paint.setStrokeWidth(2);

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawLine(startX, startY, endX, endY, paint);
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部