繁体   English   中英

2台设备上的大小不同,即使我使用“dp”

[英]Different sizes on 2 devices, even if I use “dp”

我有2片:

1 Samsung Android 3.0

    DisplayMetrics {density=1.0, width=600, height=976, 
scaledDensity=1.0, xdpi=161.55031, ydpi=155.51021}

1低成本设备,Android 2.3.3

    DisplayMetrics {density=1.0, width=480, height=800, 
scaledDensity=1.0, xdpi=160, ydpi=160.42105}

如果我为每个屏幕尺寸使用不同的布局,两个设备都说它们是大型和mdpi,所以我无法通过使用布局文件夹名称区分它们......问题是:

我使用带有textSize =“20dp”的TextView

在第一个设备中,文本宽度是屏幕的一半,在第二个设备中更大(屏幕宽度的80%)。 为什么? 我希望如果我使用dp(而不是px),两个设备都以相同的方式显示文本。 我也尝试用sp但没有任何变化......

(我使用TextView作为示例,我对布局中的所有元素都有同样的问题:按钮大小,...)

我会尝试使用布局文件夹名称,如“layout-w600dp”或Android 3.2中引入的其他内容,但事实并非如此。

我知道我可以通过onLayout()中的代码更改元素维度但我不想这样做......

有什么建议吗?

更新

我使用主题解决了布局问题: 在运行时激活特定的dimens.xml

Dimention上android文档说明了这一点

dp与像素的比率将随着屏幕密度而变化,但不一定成正比

所以你看到的完全没问题

您可以使用LinearLayout weigth实现50%的屏幕。请参阅此内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM