我正在尝试根据图像创建自定义GWT按钮。
我的图像不是矩形,如下所示:
这甚至可能吗?我不知道从哪里开始。第二张图片(金字塔互锁三角形)比我想象的更复杂,但这个概念成立。它更复杂的原因是因为最终我只是水平地互锁按钮(想想金字塔图片顶部附近的第2行,从左到右的3个三角形)。
答案 0 :(得分:1)
您可以为<map>
,<area>
标记创建一个简单的地图窗口小部件。
public class ImageMap extends Widget implements HasMouseDownHandlers {
private MapElement mapElement;
public ImageMap() {
mapElement = Document.get().createMapElement();
setElement(mapElement);
}
public String getImgName() {
return mapElement.getName();
}
public void setImgName(String imgName) {
mapElement.setName(imgName);
}
public void addMapArea(AreaElement area) {
mapElement.appendChild(area);
}
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
return addDomHandler(handler, MouseDownEvent.getType());
}
}
创作代码:
AreaElement area = Document.get().createAreaElement();
area.setShape("rect");
area.setCoords("389,250,491,502");
area.setHref("#main");
imageMap = new ImageMap();
imageMap.setImg("frontPage");
imageMap.addMapArea(area);
imageMap.addMouseDownHandler(this);
或者可以使用带有raphaeljs的SVG图像来获得更复杂的效果(请参阅raphaelgwt)。它比地图区域解决方案更好。