Android应用程序的高度/宽度在模拟器中与在设备上不同

时间:2012-01-03 06:10:10

标签: android

我在我的应用中的一项活动中运行了几个图像视图和一个列表视图。显示器在仿真器中看起来很完美,它基本上显示一个短字符串,顶部有两个小图像,然后屏幕的其余部分由listview组成,但当我把它放在我的设备(EVO3D)上时,列表视图被截止。实际上宽度甚至略显偏差。

这是layout.xml文件;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:orientation="vertical">

<TextView android:text="@string/showRunList_name" 
android:layout_width="wrap_content"  
android:layout_height="wrap_content" 
android:id="@+id/editText1">
</TextView>

<ImageView android:contentDescription="@string/auxLogo" 
android:id="@+id/imageView1" 
android:layout_height="wrap_content" 
android:src="@drawable/logo_small" 
android:layout_width="wrap_content"
android:layout_gravity="center">
</ImageView>

<ImageView android:contentDescription="@string/auxPhone" 
 android:id="@+id/imageView2" android:layout_height="wrap_content"
 android:src="@drawable/phone" android:layout_width="wrap_content">
</ImageView>

<TextView
android:id="@+id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_no_items"/>

<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="bottom|right"
/>
</LinearLayout>

4 个答案:

答案 0 :(得分:1)

让我列出几点要小心:

  1. 您需要阅读这篇文章:Supporting Multiple Screens
  2. 如您所述,图像视图位于顶部,其余部分由ListView覆盖,但您已在父级中定义了android:layout_height =“wrap_content”,而应该是android:layout_height =“fill_parent”so它将具有全屏高度。
  3. 要使ListView能够覆盖屏幕的其余部分,请定义android:layout_height="match_parent" android:layout_weight="1"
  4. 使用 dp dip 代替固定尺寸的PX来定义高度/宽度等测量值。
  5. 在定义font-size时使用 sp (缩放点)。

答案 1 :(得分:0)

检查此http://developer.android.com/guide/practices/screens_support.html

创建与您的设备具有相同分辨率的模拟器并进行测试。

答案 2 :(得分:0)

如果要支持多屏幕,则需要在配置文件中添加多屏幕支持属性,并根据标准创建不同的图像。看看here

答案 3 :(得分:0)

模拟器的分辨率/方面与设备不同。 EVO3D的分辨率为540x960。您的仿真器可能是HVGA(320x480)或WVGA(480x800)。这种轻微的变化会导致布局的可见部分稍微移动。

请记住,您的应用程序将在市场上遇到更多设备分辨率/宽高比差异,因此它应对这些变化作出适当的反应。

HTH