2011-06-14 52 views
16

我想使用Android操作系統提供的一些默認菜單圖標。爲什麼我不應該使用操作系統提供的菜單圖標?

android menu icons

的XML將是這樣的:

<item android:id="@+id/menu_refresh" 
    android:icon="@android:drawable/ic_menu_refresh" 
    android:title="@string/menu_refresh" /> 

documentation說,這是輕率。

警告:由於這些資源平臺版本之間 變化,你 不應該參考使用 Android平臺的資源ID 這些圖標(即菜單圖標下 android.R.drawable)。

我想使用默認圖標的整點是因爲設計確實變化從OS到OS。通過使用默認圖標,您的應用程序將看起來適合它所運行的操作系統。那麼使用默認圖標有什麼不好?這似乎是不是使用默認圖標會傷害應用程序的外觀。

回答

11

的問題是,你是在一個依賴,谷歌並不能保證將增加靜態的。
這些圖標的名稱可能會更改,大小可能會更改並與您的應用程序不兼容。
如果你想要的圖標是與當前谷歌的人,你可以使用現有的那些here

+0

我認爲這就是爲什麼你有一個分鐘,目標和最大sdk – Dane411 2014-11-07 15:42:48

+2

該鏈接已死亡... – katzenhut 2015-07-29 13:37:07

0

我真的不能想到一個理由,除非你的操作做的事與操作系統所做的相關操作略有不同,對於一個暴露的實例,如果你的垃圾桶按鈕是你創建新窗口小部件的地方。但我認爲如果你保持的操作類似於操作系統的操作,那麼你很好。事實上,我同意你的看法,它甚至可能會更好的應用程序。

0

問題在於每個運營商或工廠對操作系統所做的「定製」,因此您不能認爲它們存在或與使用相符。無論如何,如果你喜歡它們,你可以將它們複製到你的drawable中,因爲無論定製它們都會看起來很標準。

+0

我以爲每個Android版本都有不同的風格。 – JoJo 2011-06-14 22:45:08

+0

這不是一個功能,這是一個可用性問題。 – AlfredoVR 2011-06-15 00:50:15

3

這是非常可能的一些配置的Android將不會有這些資源閱讀:HTC Sense,三星TouchWiz。

你可以做的是在你的sdkFolder/platforms/platform - #/ data/res /中找到你想要的drawable,並將它們放到你的項目中。然後按照任何常規資源(@ drawable/icon)引用它們。

0

此外,它可以從Android版本的不同而不同Android版本..所以這將是最好的,包括你自己的一套圖標

+2

這就是要點。我**要**它根據不同的版本而有所不同,所以我的應用程序美觀適合。 – JoJo 2011-06-14 22:43:42

1

IMO,實際上,你可以使用Android操作系統提供的菜單圖標,只要您只使用提供的圖標操作系統爲您的所有菜單項。如果您需要另一個圖標(例如refresh),則還需要複製其他圖標的圖像。否則,如果您混用自己的操作系統圖標,某些設備上的視覺樣式可能會有很大差異。

相關問題