OpenHarmony开源社区
直播中

刘润生

8年用户 757经验值
私信 关注
[问答]

harmony surfaceProvider绘制不显示怎么解决

鸿蒙自定义SurfaceProvider
@Override
protected void onRender(Canvas canvas, long millisPassed) {
    float offset = millisPassed / offsetSpeed;
    HiLog.info(label, "WLV_onRender "+(canvas==null)+" paint "+(paint==null));
    Paint paint1 = new Paint();
    paint1.setColor(Color.WHITE);
    canvas.drawCircle(200,200,130,paint1);
    HiLog.info(label, "WLV_onRender02");
}
有输出日志,但是看不到绘制的东西, 哪位大神知道是啥原因吗

回帖(2)

石玉兰

2022-4-11 10:34:21
SurfaceProvider的使用会涉及到一个Z轴的图层上下级的关系,如果设置在底部,并且窗口背景没有设置透明,则会被遮盖。有两种解决方案

1、将窗口背景设置未透明

2、将provider置顶,mSurfaceProvider.pinToZTop(true);
举报

张辉

2022-4-11 10:34:29
1、能否麻烦附一下输出日志?

2、如果不使用回调方法,单独测试一下Paint和Canvas的相关API,试一下能否绘制出来?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分