我目前仍然坚持理解文档可能存在的问题。
我一直在阅读有关supporting multiple screens的文档,而且我在HTC Desire和HTC Legend之间存在一些特殊问题。
根据我的理解,通过查看开发人员文档中的屏幕矩阵,Legend是一个“普通”屏幕,Desire是一个大屏幕。
添加布局目录layout /,layout-small /和layout-large解决了我的小屏幕设备问题。但是现在,当试图使应用程序在Desire和Legend中看起来都很好时,看起来它们都使用了正常的屏幕布局。
任何提示,解决方案或解释?
答案 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);
一旦你拥有了屏幕的大小,我想你知道如何为它分配一定的预定义(由你)布局。
我希望这有帮助,如果你还有任何问题,请在下面发表评论,我们会看到如何解决它!