2012-06-26 28 views
19

創建ImageResource的谷歌/ GWT例如瞭解:在CSS屬性中訪問GWT ImageResource?

interface MyResources extends ClientBundle { 
    @Source("image.png") 
    ImageResource image(); 

    @Source("my.css"); 
    CssResource css(); 
} 

@sprite .myImage { 
    gwt-image: 'image'; 
} 

我知道如何使用ImageResources和應用樣式名稱,但是...。

在我的應用程序中,我有多個使用css和延遲綁定應用於各種小部件的主題。所以我定義的CSS規則(「背景」),我想用.myImage類,但它不會做任何事情:

background { 
    background-attachment: fixed; 
    background-image: .myImage; //?? This is the question! 
    background-size: contain 
} 

什麼是使用內.myImage類的語法「背景'CSS屬性?看來我應該能夠指定.myImage類作爲背景圖像的參數。

編輯:做了一些更多的研究,並找到了正確的語法來做到這一點使用DataResource。

MyClientBundle extends ClientBundle { 

    //Background Image 
    @Source("resources/background.png") 
    DataResource backgroundImage(); 

} 

(mypanel.css)

@url background backgroundImage; 

.myPanel { 
    border-radius: 0px; 
    background-color:#ffffff; 
    opacity:0.6; 
    background-image: background; 
} 
+1

我剛剛使用GWT 2.6測試了這個,你可以在你的ClientBundle中使用一個ImageResource,它可以很好地工作。我只是想我會試一試,因爲它對我來說看起來好一些。 – MattWeiler

+0

順便說一句,據我瞭解stackoverflow,我認爲這將是更好發佈您的編輯作爲你自己的問題的答案,並接受你的答案。你的問題不再是一個懸而未決的問題。 –

回答

0

如果您爲樣式的名稱加上 「MYIMAGE」 在任何部件,它會設置這些小部件的背景...

-1

您可以使用像這樣的風格myResources.css.myImage。我的意思是,無論你想在UiBinder中使用哪種風格,都可以通過使用styleName屬性來使用它。

無論你在哪裏應用類.myPanel,你都可以應用styleName='myResources.css.myImage'來應用背景圖像。

如果你想在Java中使用(即不UiBinder的), 你可以使用這樣

MyResources myResources = GWT.create(MyResources.class); 
widget.setStyleName("myResources.css.myImage"); 

這裏widget是控件的對象,你要應用的背景,。

爲了清楚理解,我建議你看看這個Explanation