gpt4 book ai didi

java - android绘制完成后禁用onDraw的调用

转载 作者:行者123 更新时间:2023-11-30 03:12:53 26 4
gpt4 key购买 nike

我想做以下事情:

  1. 获取 Canvas

  2. 在 Canvas 上绘制矩形和位图列表基于for循环

  3. 绘制完所有项目后不要调用 onDraw 直到我旋转设备,因为当我尝试时应用程序太慢浏览它

  4. 我的 Canvas 在 Horizo​​ntalScrollView 中

当我尝试滚动时它非常慢

编辑:我正在扩展 View 类,所以我可以保存 View 并且不调用 onDraw 除非我想让它无效吗??

编辑 2:这是我的 onDraw 方法

@Override
protected void onDraw(Canvas canvas) {


super.onDraw(canvas);

for (int i = 0 ; i < mIcons.size() ; i++) {

prepareItem(canvas, paint, mIcons.get(i));
}

}

请任何人帮忙??

最佳答案

你不能阻止 onDraw 被调用,但你可以覆盖它并使用标志来判断它是否应该执行。我没有看到你的代码,但我建议你这样:

boolean callOnDraw = true;

   @Override
protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

if(callOnDraw){
for (int i = 0 ; i < mIcons.size() ; i++) {

prepareItem(canvas, paint, mIcons.get(i));
}
callOnDraw = false;
}

}

当你想停止绘图时,你可以设置标志 callOnDraw = false;

关于java - android绘制完成后禁用onDraw的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com