2012-05-07 85 views
4

我的應用程序是支持3類密度LDPI(120),MDPI(160),華電國際(320),併爲我們對資源(LDPI,MDPI,華電國際)三個文件夾。具有密度〜256個dpi.and我的資源Android的多屏幕支持android系統:540x960問題

但我的問題是,在HTC感覺XE發生(540x960)被拉伸。

清單文件

<supports-screens android:xlargeScreens="false" /> 

意味着我不支持對XLARGE屏幕,以便不來高密度540x960 ??。 我該如何克服這個問題?

Android Multiscreen Support issue說:「您還可以使用密度和大小限定詞的組合,但是仍然留下了一些空間,兩個不同的分辨率落入同一個桶。

應該是什麼drawble文件夾的名稱這種分辨率? 還是有其他方法來解決這個問題。

編輯:我的問題不在於佈局,我的問題540x960進來華電國際,但我的華電國際drawbles設計與480×800

幫助我..

在此先感謝..

+1

要製作專門用於540x960設備的佈局,請使用此解決方案:http://stackoverflow.com/a/10931395 – user2129417

回答

2

您的問題是你設計你的位圖特定的屏幕尺寸,而不是屏幕像素密度。

說白了放,你應該不這樣做。這裏有很多不同的外形尺寸和屏幕尺寸,你不能希望爲所有的尺寸設計圖形。所以你解決這個問題,爲540x960屏幕...什麼,然後用你的用戶是誰在爲480x854顯示器(最華電國際摩托羅拉設備)?如果您正在爲此進行開發,是否會爲1024x720和1280x720顯示器添加不同的圖形?那麼1280x800呢?

授予 - 它可以處理這些問題的痛苦,但是這是我們對設備的多樣性付出代價。 Google已經提供了相當數量的強大工具來處理這個問題。

當您正在爲Android設計的應用程序,你需要考慮設計的,如果你是設計一個網站 - 沒有桌面(或IOS)計劃。您用於設計網站的所有(或大部分)技巧也適用於此 - 另外您還擁有密度感知和9.patch工具。

如果你真的無法調整你的圖形/佈局到屏幕上而沒有搞亂它,你總是可以將佈局居中放置在顯示器上(或左右對齊,取決於你認爲最好的)。


編輯:

正如我上面提到,核心靈活的用戶界面設計,Android是想你的應用程序就像一個網站。 Roman Nurik在Android博客上有一篇文章討論這個問題。

http://android-developers.blogspot.com/2011/09/thinking-like-web-designer.html

除此之外,它主要是由Android的頂棚等

http://developer.android.com/training/multiscreen/index.html

使用正確的佈局和9片圖像(並不總是 - 有時靜態圖像更好)將允許您創建在所有手機上都看起來不錯的設計。但是你必須認識到 - 就像在瀏覽器中設計的網站一樣 - 你不能也不能100%控制每臺設備上的顯示方式。您需要實現的是即使在您預先沒有預料到的設備上顯示時,它仍然可以訪問並且很好看。

+0

480x854與480X800相同,問題..第二件事是我們不支持超大屏幕。問題僅適用於540x960,並且僅適用於一些可繪製的屏幕。 –

+1

原理保持不變,以這種方式設計應用程序對Android來說是個壞主意。如果使用xlarge顯示器將無法保護您不必處理多屏尺寸的問題Galaxy Nexus具有1280x720屏幕Galaxy Note可運行1280x800有7英寸擁有1024x720屏幕。這些顯示器都不會被視爲xlarge。 –

+0

你能告訴我更多(爲我的進一步應用)..有這麼多設備具有不同的分辨率,並在hdpi(大屏幕不在xlarge屏幕),那麼我該如何處理所有hdpi設備drawables.All設備具有相同的drawable資源,這是hdpi。什麼是主要方式? –

6

您可以使用下面的組合佈局HTC感覺XE(540x960):

res/layout-w540dp-h960dp/layout.xml 

這將使用對於這個設備的選擇佈局和可繪製的,它將從hdpi中選擇圖像,因爲在這個開發者站點256 dp進入hdpi的範圍。 http://developer.android.com/guide/practices/screens_support.html

希望這會幫助你。

+0

我同意你的說法,但我的問題與佈局不同,因爲我的佈局對於所有分辨率都差不多,問題是可繪製的.HTC感覺來自hdpi範圍,但是我的hdpi可用格式設計爲480x800,與540x960不匹配一切都在延伸。 –

+1

我認爲你可能需要使用可用於480x800和540x960的.9補丁圖像。 – Herry

+0

昨晚我想了很多關於這個問題,我的一些drawable資源非常靜態,不能修改9 patch.because因爲它們很靜態。這可能是主要問題。: –

1

您必須根據您的像素密度和屏幕大小命名drawable。計算在這裏...

dpi = sqrt(540^2 + 960^2)/ 4.3「(設備尺寸)=〜256 dp = px /(dpi/160)= 540 /(dpi/160) = 330

的繪製將被命名爲繪製-sw330dp。我已經測試了這一點。而這個工作不錯。與其他可繪要麼沒問題。佈局將佈局sw330dp

或者您也可以通過繪製試試這個-sw540p。我還沒有測試它,但我想它會工作得很好。佈局將是layout-sw540p

+0

DisplayMetrics displayMetrics = new DisplayMetrics(); \t \t getWindowManager()。getDefaultDisplay()。getMetrics(displayMetrics); (「TAG」,「displayMetrics.density =」+ displayMetrics.density +「,displayMetrics.densityDpi =」+ displayMetrics.densityDpi +「,displayMetrics.scaledDensity =」+ displayMetrics.scaledDensity); displayMetrics.densityDpi給出了與計算不同的內容, –