2013-01-07 36 views
-1

實質上,應用程序應該支持各種設備。我正在使用這些指南:mult.screen.suppscreen.stat爲不同的設備提供drawables

大多數活動的平板電腦和手機設計都很相似。我感到困惑的是,如何知道兩個版本的密度組提供不同的解決方案,因此drawable不可替代。

例如,比較XLARGE(片劑) - MDPI正常(手持機) - MDPI:

  1. 普通屏幕,中密度(160),MDPI:分辨率320x480
  2. 超大屏幕,中密度( 160),MDPI:1280×800

所以,如果我創建foo.png(50像素50像素X),用於所述第一組和然後測試相同的佈局

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/foo" /> 

,它將查找mdpi文件夾中的相同圖像 - 圖像看起來很小。

我有一個解決方案,但我不知道我是否在做正確的事:

  • 爲每個屏幕尺寸配置attr.xml。
  • 在手機資源文件夾中創建<item name="foo" type="drawable">@drawable/h_foo</item>,該文件夾引用適合於normal(handset) - mdpi分辨率h_foo(例如50x50)的圖像。
  • 在平板電腦資源文件夾中創建<item name="foo" type="drawable">@drawable/t_foo</item>,該文件夾引用適用於xlarge(tablet) - mdpi分辨率t_foo的圖像,比如150x150。

您能否闡明這種方法是否正確,以及其他解決方案?

drawable-mdpi  -> used for normal screens 
drawable-large-mdpi -> used for large screens 

爲可用的配置預選賽見providing resources

+0

嘗試[Android assets studio](http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index。html) – thepoosh

+0

閱讀更多caredfully http://developer.android.com/guide/practices/screens_support.html#qualifiers – rds

回答

1

當你保持相同的資源名稱,只是用不同的文件夾把實際PNG這是更好。

+0

好吧,謝謝 - 我會試試看。多屏幕指南還會注意到sw600dp和類似文件夾的更精確的控制。我的意思是,如果我爲/ laoyut-large和/ layout-sw600dp提供相同的可繪圖I – midnight

+0

,您只需提供不同於'drawable-large-mdpi'的資源即可。如果沒有找到資源,系統將回退到'drawable-mdpi'。 – Henry

+0

這很好,直到你被迫將drawable-large-mdpi中的資源複製到drawable-normal-hdpi。假設你想要更高的DPI資源。 – nmw

1

爲避免重複,我將所有圖像保存在drawable-nodpi文件夾中,並將文件名後綴爲一個大小(例如image-small.png,image-medium.png等)。然後,我在每個項目的設備特定(drawable-normal-mdpi,drawable-large-mdpi)文件夾中都有XML定義。例如:

繪製正常-MDPI/image.xml:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/image-medium" /> 

繪製-大MDPI/image.xml:我看到一個評論對這裏從

<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/image-large" /> 

注一位Google工程師(現在無法找到它)不推薦使用此功能,但是直到有人提出了一個更好的解決方案(這與較早的Android版本兼容),那麼我堅持使用它。

相關問題