我最近开发了一款Android应用,并将其上传到PlayStore。当用户对其进行测试时,由于不同设备的屏幕尺寸,视图全部搞砸了(不幸的是,我只能在一部手机上测试它)。这应该是它的样子:
相反,按钮和控件相互重叠,不太好
我做了一些研究,发现了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>
答案 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。