invalidate()
OnDraw()
메서드를 호출하지 않습니다. 내가 OnDraw()
가있는 것과 같은 클래스의 setter 메소드에 invalidate()
를 사용합니다.invalidate()가 OnLraw 메서드를 호출하지 않습니다
public class PuzzleDraw extends View {
// defining some variables //
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// codes for painting puzzle //
}
public PuzzleDraw(Context context) {
super(context);
}
// Method for giving cursor X/Y from MainActivity OnTouch() method and using it in OnDraw() method in some part of painting code //
public void setCursor(int i, int j) {
this.xx = i;
this.yy = j;
invalidate();
}
내 코드를 디버깅 할 때, 모든 invalidate()
을 위해 아무것도하지 않고있다, invalidate()
가 실행될 때 ... 사실 을 OnDraw()
을 불러 오기를 제외하고 좋은 나를! 무엇이 잘못 되었나요? postInvalidate()
, this.invalidate()
, this.postInvalidate()
도 사용했지만 아무 것도 변경되지 않았습니다.
그래서 어떻게해야합니까? OnTouch() 이벤트를 실행할 때마다 OnDraw()가 필요합니다 ... 필요합니다. – androidprogrammer2012
'invalidate '를 호출하면'onDraw' 메소드는 시스템이 뷰를 그리는 데 사용할 수있을만큼 빨리 실행됩니다. 드로잉 프로세스를보다 잘 제어하고 싶다면'SurfaceView' 사용을 고려해야합니다. –
문제는 Fast 또는 Slow에 관한 문제가 아닙니다! ... 문제는 invalidate()가 호출 될 때 내 OnDraw() 메서드가 작동하지 않는다는 것입니다. ("작동하지 않음", 작동하지 않음) – androidprogrammer2012