Android Layout在其他设备上运行不正常

时间:2014-11-02 14:47:44

标签: android android-layout layout

我最近开发了一款Android应用,并将其上传到PlayStore。当用户对其进行测试时,由于不同设备的屏幕尺寸,视图全部搞砸了(不幸的是,我只能在一部手机上测试它)。这应该是它的样子:

enter image description here

相反,按钮和控件相互重叠,不太好 我做了一些研究,发现了Supporting Multiple Screens。它讨论了您可以制作的不同布局文件夹以及所使用资源的密度。

不幸的是,由于我的应用程序使用Google Maps API而无法运仿真器。

问题
我还有其他办法来修复布局吗? 当我将它们放入drawable-hdpi / ldpi / mdpi / etcdpi或者只是将相同的图像放在不同的文件夹上时,我是否需要调整大小或对我使用的图像进行任何更改?

这是我的layout.xml文件,以防它有用:

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

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/buttonModifymarker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Modificar marcador" 
        android:background="@drawable/bluebutton" 
        android:textColor="#ffffff" />

    <EditText
        android:id="@+id/markerTitle"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/buttonModifymarker"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Título"
        android:background="@drawable/editwhite"
         >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/markerDescription"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/markerTitle"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Descripción"
        android:background="@drawable/editwhite" />

    <Button
        android:id="@+id/buttonAccept"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/buttonModifymarker"
        android:text="Insertar" 
        android:background="@drawable/yellowbutton"
        android:textColor="#ffffff" />

    <Button
        android:id="@+id/buttonCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/buttonModifymarker"
        android:text="Cancelar"
        android:background="@drawable/redbutton"
        android:textColor="#ffffff"  />

    <Button
        android:id="@+id/buttonSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/buttonAccept"
        android:text="Guardar"
        android:background="@drawable/greenbutton"
        android:textColor="#ffffff"  />

    <Button
        android:id="@+id/buttonDeletemarker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/bluebutton"
        android:text="Borrar"
        android:textColor="#ffffff" />

    <Spinner
        android:id="@+id/spinnerColor"
        android:layout_width="108dp"
        android:layout_height="45dp"
        android:layout_alignTop="@+id/markerTitle"
        android:layout_toRightOf="@+id/markerTitle" 
        android:layout_alignParentRight="true"
        android:background="@drawable/whitebutton"
        android:spinnerMode="dropdown"
        />

    <ImageButton
        android:id="@+id/buttonLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/buttonRight"
        android:background="@drawable/leftarrow" />

    <ImageButton
        android:id="@+id/buttonSearch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignTop="@+id/buttonChangemap"
        android:layout_toRightOf="@+id/buttonChangemap"
        android:clickable="true"
        android:src="@drawable/lupa" />

    <ImageButton
        android:id="@+id/buttonChangemap"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="37dp"
        android:layout_toRightOf="@+id/buttonLeft"
        android:background="@drawable/changemap3" />

    <EditText
        android:id="@+id/editSearch"
        android:layout_width="wrap_content"
        android:layout_height="47dp"
        android:layout_above="@+id/buttonSearch"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="14dp"
        android:ems="10" 
        android:background="@drawable/editwhite"/>

    <Button
        android:id="@+id/buttonOK"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignTop="@+id/editplaceholder"
        android:layout_toRightOf="@+id/editplaceholder"
        android:text="GO" 
        android:background="@drawable/gobutton"/>

    <EditText
        android:id="@+id/editplaceholder"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/buttonSearch"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="14dp"
        android:ems="10" />
    <ImageButton
        android:id="@+id/buttonHelp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editplaceholder"
        android:layout_toRightOf="@+id/buttonSearch"
        android:src="@drawable/help" />

    <ImageButton
        android:id="@+id/buttonRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/buttonplaceholder"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="42dp"
        android:background="@drawable/rightarrow" />

     <Button
         android:id="@+id/buttonplaceholder"
         style="?android:attr/buttonStyleSmall"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignTop="@+id/editplaceholder"
         android:layout_toRightOf="@+id/editplaceholder"
         android:text="GO" />

    <ImageButton
        android:id="@+id/buttonLang"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editplaceholder"
        android:layout_toRightOf="@+id/buttonHelp"
        android:src="@drawable/language" />

    <Button
        android:id="@+id/buttonTrazaruta"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/purplebutton"
        android:textColor="#ffffff"
        android:clickable="true"
        android:text="Trazar ruta" />

    <Button
        android:id="@+id/buttonUpdateMarker"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/buttonTrazaruta"
        android:background="@drawable/yellowbutton"
        android:clickable="true"
        android:text="Modificar marcador"
        android:textColor="#ffffff" />

    <Button
        android:id="@+id/buttonPositionToMarker"
        android:layout_width="71dp"
        android:layout_height="40dp"
        android:layout_alignBottom="@+id/markerTitle"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/markerTitle"
        android:background="@drawable/greybutton"
        android:text="Trazar ruta desde posición actual al marcador elegido"
        android:textColor="#ffffff" />

    <Button
        android:id="@+id/buttonMarkerToMarker"
        android:layout_width="71dp"
        android:layout_height="40dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/markerTitle"
        android:layout_toLeftOf="@+id/buttonLang"
        android:background="@drawable/greybutton"
        android:text="Trazar ruta desde este marcador a otro"
        android:textColor="#ffffff" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="83dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/buttonTrazaruta"
        android:layout_marginTop="120dp"
        android:background="@drawable/whitebutton" >

        <RadioButton
            android:id="@+id/radioAndando"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="Voy andando"
          />

        <RadioButton
            android:id="@+id/radioVehiculo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/radioGroup1"
            android:text="Voy en vehículo"
             />

    </RadioGroup>

    <Spinner
        android:id="@+id/spinnerMarkers"
        android:layout_width="108dp"
        android:layout_height="40dp"
        android:layout_alignParentRight="true"
        android:layout_alignLeft="@+id/buttonLang"
        android:background="@drawable/whitebutton"
        android:layout_below="@+id/spinnerColor" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我建议您阅读Android开发者中的支持多屏幕文档。您可以使用许多技术。您还可以尝试不同分辨率和大小的Android模拟器。只是用AVD搞砸了一下。

查看有关支持多个屏幕的更多信息@ http://developer.android.com/guide/practices/screens_support.html

要创建和测试具有不同分辨率的AVD,只需检查相同的文档@ http://developer.android.com/guide/practices/screens_support.html#testing并为此效果创建AVD。