2012-01-24 20 views
3

我有一個android應用程序,使用許多圖像。並且應用程序將用於不同的分辨率。我只使用一組圖像,圖像保存在「drawable-mdpi」中。 所以「當我以高分辨率運行圖像時,圖像會變得模糊」。 因此,可能的解決方案是保存不同分辨率的不同圖像在drawable-hdpi,ldpi等中。android如何繪製自動改變?

這樣做夠用還是必須通過代碼更改圖像?或手機會自動將完成圖像調整爲繪圖。

任何人都可以提供一個例子嗎?

回答

7

如果將圖像在ldpi,mdpi,hdpixhdpi文件夾中Android根據當前設備的dpi來選擇圖像。

如果只添加mdpi ressources並加載它們在hdpi設備Android將放大圖像與1.5一個因素,如果你打開他們,他們將與0.75的因子來縮水ldpi設備上。 應用縮放比例,以便圖像具有(幾乎)相同的物理大小,並全部以任何dpi顯示。

如果在自動縮放之後這些圖像模糊(或收縮時鬆散的細節),您應該爲每個dpi添加不同的圖像。如果您在縮放後看起來很好看的簡單圖像,則只需將一個圖像添加到任何dpi文件夾即可。

編輯: 在Android上,根據屏幕分辨率,沒有自動選擇圖像的默認方式。正如文檔所述:

當添加對多個屏幕的支持時,應用程序不直接使用分辨率;應用程序應僅關注屏幕大小和密度,如廣義大小和密度組所指定。

(參見Supporting multiple screens)。

+0

,但在我的應用程序只能使用drawable-mdpi。在不同的分辨率下也是如此。 (我在佈局中只寫入了一個main.xml文件。) –

+0

如果僅爲圖像使用mdpi文件夾,它們將在hdpi和xhdpi設備上放大,並在ldpi設備上收縮。你永遠不需要創建多個佈局。 Android會自動從dpi文件夾中選擇圖像。如果你即使用hdpi和mdpi文件夾,hdpi設備很可能會選擇hdpi版本的圖像。 – thaussma

+0

我有一個應用程序,其中所有drawable具有不同的圖像,但具有相同的名稱,當我在使用ImageView的佈局中使用該圖像時,只使用drawable-mdpi。在不同的分辨率也..所以可能是什麼問題? –

4

這就夠了。這是在可繪製目錄中具有不同文件夾的原因,但請注意,Android 1.5僅支持1個名爲drawable且無子目錄的文件夾(但1.5上的手機沒有分辨率高於mdpi的手機)

+0

您也可以考慮爲平板電腦XLARGE屏幕(創建於繪製的xhdpi文件夾) –

+0

我有一個應用程序中,所有可繪製具有不同的圖像,但具有相同的名稱,當我正在使用該圖像,只使用drawable-mdpi。在不同的分辨率也..所以可能是什麼問題? –

+0

您可以在模擬器或實際手機上測試此功能嗎? –

0

確保您的圖片總是正確縮放的最佳方法之一是使用9個補丁drawables。 Android會根據屏幕尺寸自動縮放這些尺寸。它們最適用於通常會改變尺寸的東西(Buttons,EditTexts,Spinners等),但可以在正確的設置中正確應用。

使用9個補丁圖像的一個優點是節省空間;在我們的應用程序中內置三種不同版本的圖像可能會在一段時間後變得非常大,但對於9個修補程序,您只需要一個副本。

在這裏看到更多的細節:
http://developer.android.com/guide/developing/tools/draw9patch.html

+0

嘿,你是對的。如果可以的話請給我一個9補丁圖片。 –

+0

我不確定你的意思。您可以使用任何照片編輯器(Photoshop,GIMP等)通過以1像素邊框展開圖像來創建自己的9張補丁圖像。在此邊框內,沿着要縮放的圖像部分繪製黑色線條。如果您不想手動執行此操作,則可以在SDK中使用Google的draw9patch工具。打開一個終端窗口,導航到您的計算機上保存SDK的位置並運行程序「draw9patch」。您將看到一個交互式窗口,您可以在該窗口中圍繞圖像邊界畫線並觀察它們的比例。 – roboguy12

+0

好的,我會試試看 –