2012-08-01 16 views
8

目前,我有以下的資源文件夾:
1.佈局sw600dp
2.佈局sw600dp-notlong的Android資源notlong /長標識符不工作

的想法是,我們有3種類型的設備和設備應相應地使用來自正確文件夾的資源。這些設備是:
1. Samsung Galaxy Tab 10.1,1280 X 800 mdpi。 16/10
2.華碩變壓器TFT 101,1280 X 800 mdpi。 16/10。
3.通用平板電腦,800 X 600 ldpi。 4/3。

問題是,所有3個設備都使用layout-sw600dp中的資源 - 不長。根據我的理解,4/3被分類爲非常長的設備。

我的標識符用法有什麼問題嗎?或者有一個錯誤報告的標識符?

提前致謝。

回答

6

'notlong'標識符適用於與基線設備的縱橫比相似的設備(請參閱http://developer.android.com/guide/practices/screens_support.html)。雖然這些文檔在基準設備上很少,但Android設備的典型分辨率爲1.5〜1.6。所以你看到的是正確的。

雖然設備的「長」標識符長於基準比率,但看起來您無法爲較短設備(例如800x600)強制使用資源。

+0

簡短的問題。根據你的解釋,不應該1280 X 800分辨率使用長文件夾中的資源而不是-notlong? – Maziz 2012-08-01 22:15:23

+0

1280x800的比例爲1.6。我假設它已經足夠接近基線(800/480 = 1.6,480/320 = 1.5),因爲它使用的是'notlong'資源。所以不,它不會使用'長'的資源。 – ebernie 2012-08-02 20:54:56

+2

這個sdk遺漏是一個恥辱:/ – nobre 2013-02-06 19:39:59

18

根據源代碼。 (框架/鹼/核心/ JAVA /機器人/內容/ RES/Configuration.java)

 // Is this a long screen? 
     if (((longSizeDp*3)/5) >= (shortSizeDp-1)) { 
      // Anything wider than WVGA (5:3) is considering to be long. 
      screenLayoutLong = true; 
     } else { 
      screenLayoutLong = false; 
     } 

因此,如果縱橫比小於3寬:5(或1.667),它將被視爲長畫面。

+1

這使得1280x800'不長'...我正在考慮使用這個值來區分Nexus 9和10,但那不會工作... – 2015-06-11 19:03:30

+0

愛Android開源<3 – IlyaEremin 2016-03-29 09:40:41

相關問題