屏幕尺寸和布局

3

我目前遇到的问题可能是理解文档方面的问题。

我一直在阅读有关支持多屏幕的文档,但我在HTC DesireHTC Legend之间的布局差异方面遇到了一些问题。

据我理解,通过查看开发人员文档中的屏幕矩阵,Legend是一个“普通”屏幕,而Desire是一个大屏幕。

添加布局目录layout/,layout-small/和layout-large可以解决小屏幕设备的问题。但是,现在尝试使应用程序在Desire和Legend上都看起来不错时,它们似乎都使用普通的屏幕布局。

有什么提示、解决方案或解释吗?

3个回答

2

HTC Desire的屏幕分辨率为480x800 WVGA800,被认为是普通屏幕-hdpi,而HTC Legend的屏幕分辨率为320 X 480 HVGA,则被认为是普通屏幕-mdpi(请参见表格1这里)。因此,两个设备都使用普通屏幕布局和mdpi图形,但由于Desire具有hdpi屏幕,Android会将图形放大(通常结果是它们看起来模糊)。为了使Desire上的布局看起来好看,您应该提供hdpi图形并将它们放在名为drawable-hdpi的文件夹中。


这解决了我的问题 - 为特定设备添加额外的可绘制对象使设计工作正常。 - Repox

0

在普通布局中尝试使用wrap_content、fill_parent或dp单位。 无论如何,像你现在这样创建多个布局是一种繁琐但可能更好的选择。 在你的清单文件中设置这个。

  <supports-screens 
    android:largeScreens="true" 
    android:smallScreens="true" 
    android:normalScreens="true" 
 />

使用以下代码获取屏幕尺寸:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
Log.e("FirstImage", "Width = "+width+"Height = "+height);

一旦您获得了屏幕的尺寸,我认为您知道如何为其分配特定预定义(由您)的布局。

希望这可以帮助您,如果您仍然有任何问题,请在下面评论,我们将看看如何解决它!


0

我不确定这如何回答我的问题 - 我想知道为什么根据两个设备的文档和规格,它们使用相同的布局,尽管我指定了不同的布局。这必须有一个解释,可以帮助解决这个问题。 - Repox

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