2017-01-06 154 views
3

我正在研究一個android應用程序,它的設計與數字(邊距等)沒有相關的東西,所以我想我會發現很多問題與不同的屏幕尺寸,所以我想做一個功能將保持數據DIMENSIONS文件正比於用戶的屏幕大小像(User's screen size X dimen)/(the screen size which the app were designed on),所以我想知道這不會造成任何應用程序的工作問題等。處理所有屏幕尺寸android

謝謝=)

+0

沒有一個堅實的答案。這真的取決於你的佈局,你有可繪製的等等。有時只是縮放會起作用。有時候它不會(縮小時不適合,圖像過於伸展等)。小利潤率(低雙位數的東西,特別是dp)通常很好。 100像素中的數字可能不是。作爲Android工程師的工作之一,您可以找出這些相對和線性關聯,並從中創建出良好的佈局。如果你不需要,你不能指望所有東西都交給你。 –

回答

2

創建三個不同Layouts Folder在您所有設備的res文件夾中,並相應地使用尺寸。

通用佈局文件夾

res/layout-small 
res/layout-normal 
res/layout-large 
res/layout-xlarge 

你與製作完成後您的正常/中等佈局請按照下列步驟操作:

  1. 轉換的普通尺寸的其它屏幕尺寸。
  2. 將您的Normal Layout xml文件複製到其他文件夾中。
  3. 根據你在
  4. 調整在繪製文件夾中的圖片資源的文件夾更改使用的尺寸的後綴(寬度和高度 - 同樣的方法,我們用於轉換夢詩),並把它們在各自的可繪製文件夾(drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xdpi等)。
  5. 然後你的佈局應該在每個設備上都能正確定位。

對於轉換值

0.75 - ldpi (small) //mdpi dimens *0.75 
1.0 - mdpi (normal) //First create these dimensions 
1.5 - hdpi (large) //mdpi dimens *1.5 
2.0 - xhdpi (xLarge) //mdpi dimens *2.0 

對於實施例

android:layout_width="66dip" //in normal 
android:layout_width="100dip"//in large 66*1.5=100(approx) 
android:layout_width="52dip" //in small 66*0.75=52(approx) 

另外新限定符已被引入 - 最小寬度 - AvailableScreenWidth - AvailableScreenHeight

閱讀更多關於它https://developer.android.com/guide/practices/screens_support.html

我希望這有助於。

+0

非常感謝您,如果您可以提供幫助,我還有其他問題:以便用戶可以通過我的應用上傳圖片我添加了三個圖像並使它們可點擊,因此用戶點擊第一個圖標後,圖像將上傳到圖庫中, imageview改變顏色,不再可點擊(這是應該發生的),但是當我測試它時,我需要做所有這些,再次點擊imageview並走出畫廊,所以我可以看到我的圖像視圖改變顏色和不可點擊希望你有點謝謝 –

+0

我會很好的幫助,但如果上述問題得到解決,請接受這個答案,對於另一個問題,你需要單獨提問,並給我評論中的鏈接:) – Jayanth

+0

https:// github.com/intuit/sdp正是你所描述的:) –

2

也許你可以嘗試下面自動管理所有屏幕尺寸分辨率的庫。

compile 'com.intuit.sdp:sdp-android:1.0.4'

您需要只添加您build.gradle文件的依賴和你做。

你需要指定,如:

android:layout_height="@dimen/_10sdp"

相反的:

android:layout_height="@dimen/10sdp"