布局在设备和模拟器上的显示方式不同

时间:2013-08-03 05:32:32

标签: android android-layout android-screen-support android-screen

我的布局在屏幕尺寸为5.0“,mdpi(480 * 800)的模拟器上正确显示。当我在屏幕尺寸为5.0”,196ppi(480 * 854)的设备上运行app时,布局会从底部被切断。< / p>

我尝试使用<supports-screens>,但它没有任何区别。

layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/create_trip_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="top"
    android:orientation="vertical" >

    <LinearLayout
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/from_location"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:ems="10"
            android:hint="@string/from_location_hint"
            android:imeOptions="actionGo"
            android:imeActionLabel="Ok"
            android:inputType="text" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/use_current_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:onClick="useCurrentLocation"
            android:text="@string/use_current"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </LinearLayout>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:contentDescription="@string/swap_button_contentdescription"
        android:onClick="swapLocations"
        android:scaleType="fitStart"
        android:src="@drawable/swap" />

    <EditText
        android:id="@+id/to_location"
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:gravity="left"
        android:hint="@string/to_location_hint"
        android:imeOptions="actionGo"
        android:imeActionLabel="Ok"
        android:inputType="text" >
    </EditText>

    <LinearLayout
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/departuretime_date"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:gravity="center"
            android:hint="@string/departure_date_hint"
            android:inputType="datetime" >
        </EditText>

        <EditText
            android:id="@+id/departuretime_time"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:gravity="center"
            android:hint="@string/departure_time_hint"
            android:inputType="datetime" >
        </EditText>

    </LinearLayout>

    <Button
        android:id="@+id/pick_match_create_trip"
        style="@style/big_centered_button_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="80dp"
        android:onClick="pickMatchesButtonClicked"
        android:text="@string/pick_your_matches" />

    <TextView
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="75dp"
        android:text="@string/current_location_textlabel"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/current_location_text"
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginTop="5dp"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <ListView
        android:id="@+id/places_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:background="@color/white" >
    </ListView>

</LinearLayout>

3 个答案:

答案 0 :(得分:0)

唯一的方法是在xml布局中进行精彩编码,并在从头开始设计时使用图形布局中的所有可用屏幕方向和尺寸进行检查。

答案 1 :(得分:0)

它可能与图像密度有关,如果你使用相同的720 dp图像,它可能会这样,对于480 * 800,手机屏幕的图像密度应为320 dp,480 dp对于像Streak这样的tweener平板电脑,如需进一步参考,请查看

320dp:典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。

480dp:像Streak(480x800 mdpi)这样的tweener平板电脑。

600dp:7“片剂(600x1024 mdpi)。

720dp:10英寸平板电脑(720x1280 mdpi,800x1280 mdpi等)。

http://developer.android.com/guide/practices/screens_support.html

我有类似的问题,我使用720 dp,720 * 1280的7英寸平板电脑,我的屏幕被切断,600 dp图片解决了我的问题,它运行良好的模拟器,但失败的真实设备。我不确定这个解决方案是否适合你!但祝你好运

答案 2 :(得分:0)

请检查您是否为该特定布局选择了正确的主题。我也有同样的问题。