我想做以下事情:
获取画布
在画布上绘制矩形和位图列表 基于for循环
绘制所有项目后不要调用 onDraw 直到 我旋转设备,因为当我尝试时应用程序太慢 浏览它
我的画布在 HorizontalScrollView 中
当我尝试滚动时它非常慢
编辑:我正在扩展 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;
我找到了一个解决方法来完成这项工作,我在位图中绘制,每次我尝试调用 onDraw() 我检查我的位图是否不为空使用它
谢谢大家
对我来说,它通过在 if 条件后调用
return;
来工作。喜欢:
if(lengthX == lengthTotal) return;