If you can, use a ClientBundle. That will ensure the background image only 
gets downloaded once with the rest of your image resources and the 
spritemap produced by the client bundle should be cached by the browsers.

create an interface called AppImages that extends ClientBundle (class must 
be in part of your apps 'client' and visible to the gwt compiler).

public interface AppImages extends ClientBundle {

@Source("background.png")

ImageResource background();

}


put the PNG in your source folder alongside the AppImages interface.

ideally you would do this for all small-to-moderate sized image resources that 
your app uses.


When you want to set the background image of an element, you have several ways 
of doing it (note: i'm writing this without actually testing so it may not be 
perfect).


1) Use an HTML template to create the element with the background image


public interface HtmlTemplates extends SafeHtmlTemplates {

@Template("<div style=\"background-image: {0};\"/>")

SafeHtml backgroundDiv(SafeUri imageUrl);

}


HtmlTemplates templates = GWT.create(HtmlTemplates.class);

AppImages images = GWT.create(AppImages.class);


SafeUri backgroundImage = images.background().getSafeUri();

SafeHtml backgroundDiv = templates.backgroundDiv(backgroundImage);


2) Set the background-image css property on the element that underlies the GWT 
widget.


AppImages images = GWT.create(AppImages.class);

SafeUri backgroundImage = images.background().getSafeUri();


FlowPanel panel = new FlowPanel(); //this creates a div

panel.getElement().getStyle().setBackgroundImage(backgroundImage.asString());



Remember, you'll probably also want to set the other important css properties 
like background-repeat, background-position, etc.

Finally, if you want the image to be available publicly on the web, use the 
<public> declaration in your GWT module descriptor. This will tell the compiler 
to dump the background PNG into your war/<MODULE_NAME>/background.png folder so 
you can access it out on the web like 
www.yourdomain.biz/yourmodule/background.png

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/ktSjQdQcEO4J.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to