캔버스 객체로 그릴 두 개의 이미지가 있습니다. 그 이미지를 서버에서 가져오고 loadHandler를 호출하면 이미지의 크기 (동일한 너비와 높이를 가짐)를 얻고 캔버스의 크기를 계산합니다. 그런 다음 캔버스의 계산 된 x, y 위치에서 각 이미지를 그립니다. 문제는 하나의 이미지 만 캔버스에 나타납니다. 왜?GWT로 캔버스에서 그리기
final Image siImg = new Image();
siImg.setVisible(false);
siImg.setUrl(Constants.URL_PREFIX + siPath);
siImg.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
int siWidth = siImg.getWidth();
int siHeight = siImg.getHeight();
siImg.removeFromParent();
if (!CategoryTableView.this.dimFromBg) {
CategoryTableView.this.width = siWidth;
CategoryTableView.this.height = siHeight * sSize;
//CategoryTableView.this.setPixelSize(CategoryTableView.this.width, CategoryTableView.this.height);
CategoryTableView.this.canvas.setPixelSize(CategoryTableView.this.width, CategoryTableView.this.height);
CategoryTableView.this.canvas.setCoordinateSpaceHeight(CategoryTableView.this.height);
CategoryTableView.this.canvas.setCoordinateSpaceWidth(CategoryTableView.this.width);
CategoryTableView.this.dimFromBg = true;
}
ImageElement imageElement = (ImageElement) siImg.getElement().cast();
int left = xOff;
int top = yOff + (siHeight * fi);
CategoryTableView.this.context.drawImage(imageElement, left, top);
}
});
RootPanel.get().add(siImg);
좋아 내가 컨텍스트의 상태마다 저장해야 ... 나는 그것을 찾을 생각 : 여기
는 코드의 일부이다. 그게 맞습니까? (지금은 작동하기 때문에!)
좋은 아이디어 버퍼링! 사실, 나는 그것이 내가 게시 한 방식으로 작동하도록 만든다. (스토어없이/기능을 복원하라. 내 가정과는 무관하다.) 그러나 Erik, 어쨌든 이미지를 추가하지 않으면 RootPanel.get(). add (img)를 사용하여 트릭을 만든다. –