Java 完成绘图后禁用对onDraw的调用
我想提出以下几点:Java 完成绘图后禁用对onDraw的调用,java,android,android-canvas,Java,Android,Android Canvas,我想提出以下几点: 获取画布 在画布上绘制矩形和位图列表 基于for循环 绘制完所有项目后,直到 我旋转设备,因为我尝试时应用程序太慢 浏览 我的画布在水平滚动视图中 当我尝试滚动时,它非常慢 编辑:我正在扩展视图类,所以我可以保存视图并且不调用onDraw,除非我希望它无效吗 编辑2:这是我的onDraw方法 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0 ; i < mIcons.size() ; i++) {
prepareItem(canvas, paint, mIcons.get(i));
}
}
@覆盖
受保护的void onDraw(画布){
super.onDraw(帆布);
对于(int i=0;i
请任何人都可以帮忙???您不能阻止onDraw被调用,但您可以覆盖它并使用标志来指示它是否应该执行。我看不到您的代码,但我建议您执行以下操作: 布尔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;
}
}
@覆盖
受保护的void onDraw(画布){
super.onDraw(帆布);
if(callOnDraw){
对于(int i=0;i
当您想要停止绘图时,您可以设置flag
callOnDraw=false代码>我已经找到了一个解决方法来完成这项工作,我已经绘制了位图,每次我尝试调用onDraw()时,我都会检查我的位图是否为空并使用它
谢谢大家我尝试添加标记callOnDraw,并在我完成for循环时将其设置为false,但是如果它绘制画布然后清除,会发生什么情况?您能向代码展示您是如何做到的吗?因为如果不调用super.onDraw(canvas);它将不会被绘制。我已经在原始帖子中添加了onDraw方法的代码,但是没有callOnDraw标志,我用你的代码再次尝试了它,我有相同的行为,它绘制画布,然后清除所有的图形,只显示白色屏幕,如果你把super.onDraw放在里面,如果(callOnDraw)?