hs123456 发表于 2024-12-17 15:31:13

动态创建高级画板后怎么绘制多个圆和文本

如题如图,目前动态创建画板后 挂接事件 后画圆无效,调试输出也没执行
<火山程序 类型 = "通常" 版本 = 1 />

方法 高级画板_异步绘制帧 <接收事件 类型 = 整数 注释 = "画板开始绘制后,会根据所指定的刷新频率不断地发送本事件以" 注释 = "绘制刷新每个内容帧." 注释 = "注意:"
      注释 = "1. 本事件将在单独的一个绘制线程里面发送,因此处理本事件" 注释 = "时必须处理好多线程冲突问题;"
      注释 = "2. 仅当\"开始绘制\"属性被设置为真后,本事件才会开始发送.">
参数 来源对象 <类型 = 高级画板 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 画板对象 <类型 = 画板类 注释 = "提供所基于的画板对象." 注释 = "注意: 画板中保留有先前所绘制的帧内容.">
参数 帧前进时间 <类型 = 小数 注释 = "提供自从上一次发送本事件后所经过的时间,单位秒. 必定大于0.">
{
    如果 (标记值 == 401)
    {
      变量 局_题库操作 <类型 = 题库操作>
      变量 c <类型 = 整数>
      调试输出 ("进入了画板", )

      // 循环 (, 局_题库操作.取题库总题数 (), c)
      {
            // 画板对象.画圆 (计算余数 (c, 5) * 30, 取整数绝对值 (c / 5 + 1) * 30, 10, 程_圆画笔)

      }
      画板对象.画圆 (100, 100, 50, 程_圆画笔)

    }
    否则
    {

    }



    返回 (0)
}


zmmhcc 发表于 2024-12-17 17:05:13

在动态创建高级画板处用了开始绘制命令没

hs123456 发表于 2024-12-18 20:39:12

zmmhcc 发表于 2024-12-17 17:05
在动态创建高级画板处用了开始绘制命令没

加了 开始绘制 后可以绘制了,是会一直执行绘制吗,不停止的吗

hs123456 发表于 2024-12-18 20:52:29

zmmhcc 发表于 2024-12-17 17:05
在动态创建高级画板处用了开始绘制命令没

用普通画板就好了:D

hs123456 发表于 2024-12-18 20:56:44

zmmhcc 发表于 2024-12-17 17:05
在动态创建高级画板处用了开始绘制命令没

刚刚试了下画板,如果绘制很多的圆和文本(如上图5000+个),会很慢,请问大佬有其他的解决办法吗

zmmhcc 发表于 2024-12-18 21:59:20

hs123456 发表于 2024-12-18 20:56
刚刚试了下画板,如果绘制很多的圆和文本(如上图5000+个),会很慢,请问大佬有其他的解决办法吗 ...

性能优化的方法很多,如
优化绘制逻辑:合并绘制操作以减少绘制次数、使用硬件加速、避免同位置重复绘制;
数据处理优化:先择高效的数据结构来存储和管理绘制数据、压缩和绽放资源;
图形优化:在位图上画好后再放入图片框以减少在屏幕上的绘制次数,尽量避免用循环来绘制大量的图形可以优化为路径来装载要绘制的点,试试降低图像分辨率;
内存管理:及时释放不在使用的资源,注意成员变量和局部变量的区别;
在优化过程中,不断的进行调试是非常重要的,以找到合适的方法。

hs123456 发表于 2024-12-18 22:45:29

zmmhcc 发表于 2024-12-18 21:59
性能优化的方法很多,如
优化绘制逻辑:合并绘制操作以减少绘制次数、使用硬件加速、避免同位置重复绘制 ...

大佬,能详细说说吗,绘制这个东西我就想做个刷题器的答题卡,进入答题卡界面后点击 题号 能直接跳转到对应的题目去,目前就答题卡界面制作有点问题,有什么好的解决方法吗

zmmhcc 发表于 2024-12-19 00:22:46

hs123456 发表于 2024-12-18 22:45
大佬,能详细说说吗,绘制这个东西我就想做个刷题器的答题卡,进入答题卡界面后点击 题号 能直接跳转到对 ...

1、根据火山现有已提供的安卓组件,建议优先列表类组件来实现该功能,通过分页显示可以优化掉界面加载卡顿的问题,同时列表类组件可以轻松实现点击交互和上下滚动功能,能提高你的开发效率。
2、当然,用画板也可以实现,只是画板的点击交互功能需要自已写逻辑根据用户在屏幕上点击的坐标来判断用户点击的是哪道题的按钮,会有些麻烦,但也可以实现此功能。
3、另外还有一些其它方法,要看你对封装的熟悉程度。
页: [1]
查看完整版本: 动态创建高级画板后怎么绘制多个圆和文本