2017-03-08 52 views
-1

我想要使用recyclerview linearlayoutmanager在屏幕上水平顯示相同數量的卡/物品。假設我們有10張卡片,我想在所有設備上顯示3張卡片和第四張卡片的一部分。但在某些設備中,第四張卡片可見一半以上。我希望它應該在所有與PlayStore應用相同的設備中保持一致。所有設備中水平卡/物品的數量相等

我給出了dp單位的值,我發現在兩個不同dpi的xhdpi設備中,兩個設備的顯示方式都不相同。對於100dp的給定寬度,720px寬度的設備按預期呈現,但另一個寬度爲768px的設備顯示第四張卡片超過一半。兩個設備都從同一個桶xhdpi中選取值。

請讓我知道如何處理其DPI與bucket dpi不完全匹配的設備。

回答

1

您可以爲不同的屏幕尺寸添加不同的dimens.xml,例如,您將在values-sw720dp文件夾下創建一個dimens.xml,然後在values-sw600dp等文件夾下創建另一個dimens.xml。 。

請參閱this answer以獲取更多幫助。


嘗試把這個地方,要麼登錄或吐司的寬度和高度,看到了兩個較小的是什麼,使用的最小寬度。所以,如果你得到像961 x 552的東西,你可以在values-sw552dp下使用dimens.xml。

DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); 

float width = displayMetrics.widthPixels/displayMetrics.density; 
float height = displayMetrics.heightPixels/displayMetrics.density; 
+0

嗨Aimy ..感謝您的回覆......如上所述,這兩個設備都屬於相同的存儲桶值-xhdpi - > dimen.xml。如何處理其dpi不是真正的水平分辨率dpi(320 dpi,480dpi,640dpi)的設備 – krishnamn

+0

您可以使用其最小寬度(sw552dp等)而不是依靠xhdpi,mpdi等創建特定的設備 –

相關問題