2010-10-18 35 views
2

覆蓋風格比方說,我有一個佈局風格:android系統

<LinearLAyout ... > 
    <TextView ... style=someStyle /> 
    <ImageView ... style=someImageStyle ... /> 
</LinearLayout> 

風格將在我的項目的XML定義。 我怎樣才能重寫這種風格與外部XML? (我問,因爲我注意到視圖沒有applyStyle \ setStyle或任何類型的(最好的選擇,因爲樣式需要解析,與android:attr進行比較以進行驗證,然後應用於視圖的每個項目)。 我不知道我怎麼想做出downlaodable主題我的應用程序。

+0

我確實已經閱讀過android的「應用樣式和主題」已經沒有提到這個問題:-) – codeScriber 2010-10-18 09:02:53

+0

你偶然讀過這個http://stackoverflow.com/questions/2016249/how-to-programmatically-setting-風格屬性在視圖 – Terrance 2010-12-08 17:20:16

+0

燁,這是不幸的是我雖然...我認爲這是有點跛腳我不能有一個像尺寸和顏色的裝載器例如一個樣式創建屬性對象,我可以通過在一個對象的C'tor或在applyStyle()中使用它將與在xml文件中定義ever.ything一樣,然後以編程方式設置它們 – codeScriber 2011-07-20 14:56:36

回答

1

了一定的經驗後,我可以在這裏分享我的想法有關它在我自己的問題...... 所以第一句話是,即使是在自己的樣式,儘可能多地使用Dimentions和顏色和屬性。這種方式如果你想以編程方式將樣式應用於視圖,可以使用getResources.getDimen ...,getRessources()。getColor(),getResrouces.getDrawable() )等...

此外,你可以採取鱈魚e從aapt或打開現有的apk並從那裏獲取編譯後的xml,然後使用相同的代碼從android源代碼中讀取xml(這是C代碼,介意你!!!)。我不會從簡單的原因做到這一點,它是一個矯枉過正的應用簡單的風格的視圖。 寫入方法所用的時間太短。如果你必須用xml來完成,你可以只用你的視圖創建一個xml文件,然後膨脹它,但是你不能在運行時替換樣式。因爲你必須定義自己的機制來替換顏色,大小,背景等......並提供圖像,但這並不容易,如果我沒有弄錯,從本地存儲器讀取這些圖像,效果會降低然後從資產或可繪製目錄讀入它們。