2013-06-25 31 views
0

假設我選擇自己的顏色來選擇所有的東西,而不是完全適合周圍的應用程序。Android:使用任何主題的缺點

我擔心的是,即使我選擇None如我在Eclipse的主題,我仍然得到了一些默認的主題:

RES /價值/ styles.xml

<resources> 
    <style name="AppBaseTheme" parent="android:Theme.Light"> 
    </style> 

    <style name="AppTheme" parent="AppBaseTheme"> 
    </style> 
</resources> 

RES /值-v14/styles.xml

<resources> 
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
    </style> 
</resources> 

我的問題是:如果我的顏色似乎終究或多或少在Android上和諧一致,如果我從styles.xml刪除AppBaseTheme和AppTheme以及在AndroidManifest.xml中刪除android:theme,我不得不擔心嗎?

回答

0

答案是否定的。每個Android設備都有基於安裝版本和製造商的默認主題。

例如,創建一個帶有進度條的佈局,並且根本沒有樣式和主題,然後在模擬器中使用api 10運行應用程序,在另一個模式中使用api 17運行應用程序。您會看到設計中的差異,因爲使用默認主題。同樣的事情發生,如果你的應用程序瞄準api 10並運行在具有更高api的應用程序上,應用程序的樣式將來自api 10.

如果您錯過了自定義樣式中的某些內容,根據您的應用定位的api的默認主題設計。除了醜陋之外,這可能會導致糟糕的用戶體驗。此外,在較新版本的android中,還有一些UI元素(如操作欄),它們僅基於平臺樣式和主題進行工作,這是您最大的風險(恕我直言)。

底線是,如果你不關心樣式,那麼讓android處理所有事情,不要從你的res和manifest中刪除樣式和主題引用。如果你想自己設計一切,那麼你最好的成功之路就是遵循android提供的樣式系統,並覆蓋屬性來創建你自己的樣式。

希望這有助於...

P.S.請記住,造型不僅是顏色,還有許多其他事物(如尺寸,狀態列表,動畫,可繪製,9個補丁等),您在創建自己的樣式時必須考慮...

+0

換句話說,你指出我是否喜歡它,我正在使用主題。如果我在代碼中省略任何主題,並自己定義所有屬性(顏色,尺寸等),那麼我仍將使用該平臺的默認主題。因此,如果我的目標是控制用戶體驗的每個方面,那麼我最好採用一個主題並覆蓋我想要的內容,而不是完全忽略主題。 – Calaf

+0

@Calaf你是對的!雖然它看起來不那麼難,但是它的工作量很大,例如,我花了將近一個小時的時間來按照我想要的方式來設計複選框,因爲我必須爲它創建15個可繪製的對象... – Christos

+0

我的困境是這樣的。如果我繼承Holo.Light.DarkActionBar,我沒有看到我正在繼承的定義。而且,即使我在32x32 ImageButton上爲layout_width和layout_height指定了wrap_content,例如,我會得到一個更大的按鈕,這顯然是由於我繼承的主題中的一些設置的結果。 – Calaf

0

如果你要使用你自己的顏色只是創建自己的主題,並將其設置爲代替AppTheme

+0

問題是:如果我不使用主題,我會失去什麼? – Calaf

0

使用styleHTML直接屬性時,當你將無法再使用除非你爲每個你想要的視圖寫出相同的風格。

只需編寫自己的主題並將其提供給您想要的自定義主題/樣式的視圖/ activities即可。

我得到了什麼:如果您直接在視圖中添加樣式並且在您的視圖中添加樣式,您將無法控制樣式,並且隨着應用程序的增長,稍後可能會實現全局樣式的混亂。

還引述official Android theming guide:在Android的

樣式有着相似的理念,以級聯樣式表在網頁設計中,它們允許你設計與內容分開。

並回答你的問題:不,你不必擔心。您可以刪除任何您想要的內容,但由於上述原因,不鼓勵使用styles.xml。

相關問題