2014-01-24 186 views
0

我正在開發一款在每個尺寸屏幕上運行的android應用程序。爲此,我創建了文件夾drawable, drawable-ldpi, drawable-mdpi, drawable-hdpi and drawable-xhdpi。併爲佈局創建文件夾layout, layout-small, layout-normal, layout-large and layout-xlarge。對於我創建的值values, values-small, values-normal, values-large, values-xlarge。這是我第一次在多屏幕支持上工作。並且在互聯網上有這麼多鏈接以不同的方式解釋多屏幕支持。所以我有幾個問題。基於屏幕尺寸的多屏幕支持

  1. 需要除這些文件夾以外的任何其他文件夾?
  2. 我做對了嗎?
  3. 如何將分辨率從ppi轉換爲dpi?

而我只在肖像模式下創建應用程序的重要事項。

編輯 -

首先我創造價值的文件夾與ldpi, mdpi, hdpi。但設備屬於相同的dpi,但具有不同的尺寸會產生問題。所以我決定創建上面的文件夾。

+1

請點擊此鏈接http://developer.android.com/guide/practices/screens_support.html瞭解更多信息 –

回答

0

Dp是密度獨立像素,用於概括屏幕所具有的像素數量。從

http://developer.android.com/guide/practices/screens_support.html

XLARGE屏幕截取這些是廣義的數字是至少960dp X 720dp 大屏幕是至少640dp X 480dp 正常屏幕是至少470dp X 320dp 小屏幕是至少426dp X 320dp 廣義DPI值的屏幕:

ldpi Resources for low-density (ldpi) screens (~120dpi) 
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.) 
hdpi Resources for high-density (hdpi) screens (~240dpi). 
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi). 
Therefore generalised size of your resources (assuming they are full screen): 

ldpi 
Vertical = 426 * 120/160 = 319.5px 
Horizontal = 320 * 120/160 = 240px 
mdpi 
Vertical = 470 * 160/160 = 470px 
Horizontal = 320 * 160/160 = 320px 
hdpi 
Vertical = 640 * 240/160 = 960px 
Horizontal = 480 * 240/160 = 720px 
Edit - adding xhdpi as they are becoming more popular 

xhdpi 
Vertical = 960 * 320/160 = 1920px 
Horizontal = 720 * 320/160 = 1440px 
+0

請根據我的問題提供具體的答案。 –

0
values-w360dp 
    values-w360dp-xhdpi 
    values-w360dp-xxhdpi 


drawable-w360dp 

更好的參考,閱讀此線程。

http://developer.android.com/guide/practices/screens_support.html

public static int convertDpToPx(int dp,Context context) 
    { 
     float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); 
     return (int)px; 
    } 
    public static int convertPxoDp (int pixel,Context context) 
    { 
     float density = context.getResources().getDisplayMetrics().density; 
     int minHeight = (int) (pixel*density + 0.5f); 
     return minHeight; 
    } 
+0

請提供具體答案。 –

+0

使用另一個文件夾「w360dp」 – RVG

0

保持簡單愚蠢

您是already aware關於different folders to provide alternative resources用法和圖像的application.so只是去用它。 add it到您的應用程序。

現在下一步是, 只需設計您的佈局文件並查看其Graphical LayoutPreview All Screen Sizes

現在,你:-)

+0

謝謝。我做對了嗎? –

+0

是的,你做得對。 –

+0

我還需要其他文件夾嗎? –

0

Check->Analyse->Change if required

並且有需要的不僅僅是這些文件夾的任何其他文件夾中?

實際上沒有「需要」放置任何額外的文件夾。只有在您需要它們時才創建它們,並且僅當您想爲特定設備提供不同的佈局/資源時才創建它們。例如,如果您有一個列表視圖,其中的項目在手機上打開了詳細信息視圖(活動),則可能需要爲平板電腦(例如xlarge)單獨佈置一個活動並排放置兩個片段的活動。

我做對了嗎?

你現在可以測試它嗎?在不同設備上運行你的應用有什麼問題嗎?

如何將分辨率從ppi轉換爲dpi?

不能給你一個確切的公式,但你可以找到更多關於DPIPPI的信息在維基百科。