在子线程里面高刷调用canvas.drawPixelMapHolderRect;画图,然后模拟机闪退,请请帮帮忙怎么弄?
@Override
public void run() {
isFirstRun = true;
init();
while (isRunning) {
//游戏暂停
// if (!isPause()) {
// myLogic();
// }
long startTime = System.currentTimeMillis();
myDraw();
long endTime = System.currentTimeMillis();
long time = endTime - startTime;
if (time < 1000/35) {
try {
Thread.sleep(1000/35 - time);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//刷新UI
TaskDispatcher uiTaskDispatcher = context.getUITaskDispatcher();
uiTaskDispatcher.asyncDispatch(() -> this.invalidate());
}
}
myDraw
//画出游戏界面
private void myDraw() {
try {
tiledLayer_cover.draw(lockCanvas);
tiledLayer_peng01.draw(lockCanvas);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (lockCanvas != null){
// holder.unlockCanvasAndPost(lockCanvas);
}
}
}
draw
public void draw(Canvas canvas) {
for (int i = 0; i < getRows(); i++) {
for (int j = 0; j < getCols(); j++) {
int tiledIndex = getTiledCell(j,i);
if (tiledIndex == 0) {
continue;
}
int x = mTiledX[tiledIndex];
int y = mTiledY[tiledIndex];
int ix = getX() + j * getWidth();
int iy = getY() + i * getHeight();
mSrc = new RectFloat(x, y, x + getWidth(), y + getHeight());
mDest = new RectFloat(ix,iy , ix+getWidth(), iy + getHeight());
canvas.drawPixelMapHolderRect(mBitmap,mSrc,mDest,paint);
}
}
}
鸿蒙
线程
画图
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS编程如何获取手机信息的基站小区Cell值,麻烦帮帮忙!谢谢
7434浏览 • 1回复 已解决
HarmonyOS 手势处理高概率闪退
945浏览 • 1回复 待解决
H5如何拉起相机,请帮忙提供一个demo示例?
1129浏览 • 1回复 待解决
请帮忙提供有关权限申请的三方开源库
1260浏览 • 1回复 待解决
HarmonyOS canvas画图问题
872浏览 • 1回复 待解决
选择远程模拟机进行模拟,在Remote Emulator内的Single Device中没有设备可选,这是怎么回事啊?
3141浏览 • 1回复 待解决
Text实现scroll效果怎么弄?
6855浏览 • 1回复 待解决
请帮忙解释一下location?: string = "";无法赋值null,这个?代表什么东西?
529浏览 • 1回复 已解决
eTS什么时候能进行远程模拟机的调试?
5430浏览 • 2回复 已解决
#鸿蒙通关秘籍#大佬们,页面内容加载在ArkUI中怎么弄,能指导下吗?
1075浏览 • 1回复 待解决
#鸿蒙通关秘籍#大佬们,弹窗控制在ArkUI中怎么弄,能指导下吗?
918浏览 • 1回复 待解决
想把APK文件转成HAP怎么弄?
12003浏览 • 2回复 待解决
HarmonyOS Native C函数中有多线程交互,用napi调用会闪退
1480浏览 • 1回复 待解决
napi调用第三方库,有人知道怎么弄吗?
1965浏览 • 1回复 待解决
HarmonyOS 在应用启动的时候调用一个ets里面引用了上下文 启动会闪退
904浏览 • 1回复 待解决
HarmonyOS 主线程耗时任务,app闪退
1090浏览 • 1回复 待解决
HarmonyOS H5如何调扫码功能,请帮忙提供一个demo示例
1113浏览 • 1回复 待解决
HarmonyOS调用 gattClient.off('BLECharacteristicChange') 项目闪退
1355浏览 • 1回复 待解决
#鸿蒙通关秘籍#朋友们,组件在ArkUI中的像素单位转换怎么弄,有人知道吗?
892浏览 • 1回复 待解决
高德地图折叠屏闪退,有人遇到过吗
404浏览 • 0回复 待解决
事件订阅,闪退事件没有走到回调里面
2989浏览 • 1回复 待解决
ability被异常杀后数据保留怎么弄?
6131浏览 • 1回复 待解决
Mysql 同时修改多个库的数据怎么弄?
3458浏览 • 1回复 待解决
荣耀50手机可以刷鸿蒙系统吗?怎么刷?
37806浏览 • 2回复 待解决
APP闪,你可以先把run()方法里面的myDraw()先注释掉,真机调试重启,如果仍出现APP闪退,则说明你的run()方法的代码有问题。 如果注释掉myDraw()方法没有出现APP的闪退,那下一步就要查看myDraw()方法中的代码。