1

我的布局在屏幕尺寸为 5.0"、mdpi(480*800) 的模拟器上正确显示。当我在屏幕尺寸为 5.0"、196ppi(480*854) 的设备上运行应用程序时,布局从底部被切断。

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

布局.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>
4

3 回答 3

0

它可能与图像密度有关,如果您使用的是 720 dp 的相同图像,它可能会以这种方式运行,对于 480*800 ,图像密度对于手机屏幕应该是 320 dp,对于 tweener 平板电脑应该是 480 dp像 Streak 一样,有关更多参考资料,请查看此

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

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

600dp:7 英寸平板电脑 (600x1024 mdpi)。

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

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

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

于 2013-08-03T05:46:41.707 回答
0

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

于 2013-08-03T05:37:48.560 回答
0

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

于 2015-06-30T07:08:17.500 回答