如何为不同的屏幕密度指定不同的布局尺寸?

3

您能告诉我如何为不同屏幕密度指定布局的尺寸吗? 即,布局在不同密度的屏幕上相同,但某些尺寸不同。 我该怎么做?

谢谢。

3个回答

11
//1.create different dimens.xml in different resource folders as below 

 res/values-ldpi/dimens.xml
 res/values-mdpi/dimens.xml
 res/values-hdpi/dimens.xml

 //Then Android will decide which file to use. 

//2.Create  dimensions values in respective dimens.xml file according to the need as below


 <!-- in values-ldpi/dimens.xml -->
 <dimen name="textSize">25dip</dimen>

// and..

 <!-- in values-mdpi/dimens.xml -->
 <dimen name="textSize">20dip</dimen>

// etc. 
// 3.Don't care about resolution Android will take care of which resource to fetch.
// 4.Mention size in  dp instead of pixels.

+1 感谢您与我们分享的解决方案!你救了我的一天,太感谢了。再次感谢 ;) - Simon Dorociak

2
您需要定义您的布局并将其放置在

res/layout-Qualifier/my_layout.xml
其中Qualifier可以是以下一个或多个

size: small,normal,large

density:ldpi,mdpi,hdpi。

例如,大屏幕高密度的布局将是 res/layout-hdpi-large/my_layout.xml

有关属性的完整列表,请参见上面的答案


那是否意味着我需要将'my_layout.xml'文件复制并粘贴到不同的目录中,只是宽度/高度值不同?我能否放置3个不同的dimens.xml文件,并让my_layout.xml查找它们? - michael
是的,在所有目录中复制相同的my_layout.xml,并根据屏幕大小或dpi更改对齐方式或大小。 - VenomVendor

0

您可以使用不同的单位使尺寸适应屏幕。

可用的单位有:px(像素),dp(密度无关像素),sp(基于首选字体大小的缩放像素),in(英寸),mm(毫米)。

可用资源类型

支持多个屏幕


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接