1

pngおよびsvgイメージを配信するサーブレットがあります。pngでは問題ありません:

Image image = new Image(GWT.getHostPageBaseURL() + token);

しかし、svgを機能させる方法は?依存関係に「lib-gwt-svg」をすでに追加しました。SVGImageクラスがあります:

SVGImage svg = new SVGImage(OMSVGParser.parse(???));

解析は文字列を取ります。URLから生の文字列をロードする方法はありますか?

または、それを機能させる方法(「lib-gwt-svg」の有無にかかわらず)?

更新: Andrei Volginへのthx:彼はそれが「Image」で動作するはずであると指摘しました(私はmimeタイプを「image / svg + xml」に修正する必要がありました)。ただし、svg-image内のスクリプトはこのようには機能しません(画像は通常のビットマップ画像としてレンダリングされているように見えます)。(スクリプトを使用して)svgとしてレンダリングされた画像が必要です。

4

2 に答える 2

4

URLを使用して画像を読み込む場合は、ライブラリはまったく必要ありません。そして、それらを配信するためにサーブレットは必要ありません。/ war/imagesフォルダに画像を追加するだけです。次に、GWTコードで:

Image image = new Image();
image.setUrl("images/myImage.svg");
myPanel.add(image);

svgファイルをサポートしないブラウザー用のロジックを追加することをお勧めします。

于 2012-10-12T17:38:36.413 に答える
0

外部ライブラリがなくても機能するソリューション(Andreiのソリューションなど)を見つけましたが、埋め込みスクリプトも機能し続けています。ここからの情報を使用しました-HTMLPanelを使用し、「RequestBuilder」を介して画像をロードしました。

    String url = GWT.getHostPageBaseURL() + link.getToken();
    RequestBuilder rB = new RequestBuilder(RequestBuilder.GET, url);
    rB.setCallback(new RequestCallback() {

        @Override
        public void onResponseReceived(Request request, Response response) {
            //create Widget
            chartImage = new HTMLPanel(response.getText());
            //add to layout   
            layout.add(chartImage);

        }

        @Override
        public void onError(Request request, Throwable exception) {
            // TODO Auto-generated method stub

        }
    });
于 2012-10-15T10:45:10.013 に答える