屏幕尺寸和布局

时间:2011-03-15 11:13:44

标签: android android-layout screen-resolution

我目前仍然坚持理解文档可能存在的问题。

我一直在阅读有关supporting multiple screens的文档,而且我在HTC DesireHTC Legend之间存在一些特殊问题。

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

添加布局目录layout /,layout-small /和layout-large解决了我的小屏幕设备问题。但是现在,当试图使应用程序在Desire和Legend中看起来都很好时,看起来它们都使用了正常的屏幕布局。

任何提示,解决方案或解释?

3 个答案:

答案 0 :(得分:2)

HTC Desire - 其屏幕为480x800 WVGA800 - 被认为是正常的屏幕hdpi,而HTC Legend - 其屏幕为320 X 480 HVGA - 被认为是正常的屏幕-mdpi(见表1 {{3} })。因此,正常的屏幕布局和mdpi图形用于两种设备,但由于Desire具有hdpi屏幕,因此Android会缩放图形(通常结果是它们看起来模糊)。为了使Desire上的布局看起来很好,你应该提供hdpi图形并将它们放在名为drawable-hdpi的文件夹中。

答案 1 :(得分:0)

在布局中,我使用布局权重来指定尺寸。在各种屏幕设备上运行应用程序时,这将在很大程度上有所帮助。

在这里查看layout_weights,
http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

答案 2 :(得分: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);

一旦你拥有了屏幕的大小,我想你知道如何为它分配一定的预定义(由你)布局。

我希望这有帮助,如果你还有任何问题,请在下面发表评论,我们会看到如何解决它!