当我将 android 中的 layout_height 设置为 1280 像素时,尽管 nexus 4 的分辨率为 1280*768 ,但我的文本视图正在延伸到屏幕之外。
问问题
452 次
2 回答
2
Nexus 4 的像素密度为 xhdpi,因此 1280 像素 x 768 像素的物理显示器在 android 布局“设备无关像素”方面是 640dp x 384dp 比例。如果您将布局设置为 1280dp x 768dp,这是不正确的。
请参阅http://developer.android.com/guide/topics/resources/more-resources.html#Dimension以获取有关屏幕密度、设备独立像素 (dp) 的更多信息。
如果您真的只是对测量这些尺寸感兴趣,则在您的 Activity 加载并完成布局后,您可以在您感兴趣的视图上调用 getWidth() 和 getHeight() 以确定布局后它们的大小。
您还想知道:
float pixelDensity = myContext.getResources().getDisplayMetrics().density;
您可以确定显示尺寸:
WindowManager w = myActivity.getWindowManager();
Display display = w.getDefaultDisplay();
int height = display.getHeight();
int width = display.getWidth();
然后:
int heightInDIPs = height / pixelDensity;
int widthInDIPs = width / pixelDensity;
@SpacePope 提供的 Supporting Multiple Screen Sizes 链接是最好的……您可以获得一些关于每个显示类别(小、中、大、xlarge)的设备尺寸的一般指南,并确保为 mdpi、hdpi、xhdpi 创建图形,现在 xxhdpi 密度,并在必要时让平台缩放。
于 2013-10-04T21:23:03.423 回答
0
不要在布局 XML 中使用“px”;“dp”是首选,以保持跨设备的规模。阅读有关支持多个屏幕的信息。
于 2013-10-04T21:26:30.123 回答