Android usando márgenes a través de varios tamaños de pantalla
Hola He creado una aplicación que quiero ejecutar a través de múltiples pantallas i construido todo el asunto en HDPi. y cuando lo ejecuto en un teléfono androide más nuevo con una pantalla más grande la alineación de la materia está hacia fuera. Sé que esto es porque he fijado los márgenes para colocar cosas usando DP.
Mi pregunta es cuáles son las mejores prácticas para el uso de márgenes a través de múltiples tamaños de pantalla y / o hay algún código que puedo establecer que puede dividir / multiplicar el DP basado en el tamaño de la pantalla?
- El selector de inicio de Android / lanzador no muestra la opción "usar de forma predeterminada para esta acción"
- La mayoría de los tamaños de pantalla populares / resoluciones en los teléfonos Android
- ¿Cómo desactivar la rotación en modo horizontal?
- ¿Cómo puedo grabar la pantalla del dispositivo Android?
- Definiciones de calificadores de múltiples pantallas de Android
Estoy deseando obtener la aplicación a través de tantos dispositivos como sea posible. pero esta es mi primera aplicación, así que no estoy completamente seguro de cómo hacer esto. Así que cualquier ayuda sería muy apreciada.
heres un ejemplo de mi diseño
<?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="20dip" android:background="@drawable/bg_tablecell" android:orientation="horizontal" android:weightSum="1" > <TextView android:id="@+id/position" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_centerVertical="true" android:paddingLeft="4dip" android:text="@string/POS" android:textSize="15dip" android:textColor="@color/blue" /> <TextView android:id="@+id/TeamName" android:layout_width="90dip" android:layout_height="wrap_content" android:layout_marginLeft="23dip" android:ellipsize="end" android:gravity="left" android:lines="1" android:text="@string/Team" android:textColor="@color/blue" android:textSize="15dip" android:textStyle="bold" android:layout_centerVertical="true"/> <TextView android:id="@+id/played" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/TeamName" android:layout_alignBottom="@+id/TeamName" android:layout_marginLeft="35dip" android:layout_toRightOf="@+id/TeamName" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/won" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/played" android:layout_alignBottom="@+id/played" android:layout_marginLeft="17dip" android:layout_toRightOf="@+id/played" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/drawn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/won" android:layout_alignBottom="@+id/won" android:layout_marginLeft="16dip" android:layout_toRightOf="@+id/won" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/lost" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/drawn" android:layout_alignBottom="@+id/drawn" android:layout_marginLeft="16dip" android:layout_toRightOf="@+id/drawn" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/goalsFor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/lost" android:layout_alignBottom="@+id/lost" android:layout_marginLeft="16dip" android:layout_toRightOf="@+id/lost" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/goalsAgainst" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/goalsFor" android:layout_alignBottom="@+id/goalsFor" android:layout_marginLeft="17dip" android:layout_toRightOf="@+id/goalsFor" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/Difference" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/goalsAgainst" android:layout_alignBottom="@+id/goalsAgainst" android:layout_marginLeft="15dip" android:layout_toRightOf="@+id/goalsAgainst" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/> <TextView android:id="@+id/points" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/Difference" android:layout_alignBottom="@+id/Difference" android:layout_marginLeft="18dip" android:layout_toRightOf="@+id/Difference" android:gravity="center" android:text="@string/Zero" android:textColor="@color/blue" android:textSize="10dip" android:layout_centerVertical="true"/>
pantallas hdpi
pantallas xhdpi
- Android, IOS fuerza presionando en la pantalla
- Deshabilitar el botón Inicio en la aplicación de pantalla de inicio?
- OnDestroy se llama cada vez que se enciende la pantalla
- Disposición del androide en diversos tamaños de pantalla
- crear pantalla de ayuda de Android
- Emulador de Android muestra la pantalla de inicio invertida reflejada y bloqueada (¿por qué?)
- Convertir imágenes (mapa de bits) a un formato de vídeo popular en Android
- ¿Cómo puedo autorun Android Chrome aplicación de pantalla de inicio en el inicio
Bueno, todo el punto de usar DP es para que usted no tiene que preocuparse por esto. Los márgenes serán más o menos los mismos en todos los dispositivos, pero si dependes de alinear las cosas en una combinación de resolución / densidad de dispositivo en particular, seguramente te sorprenderá cuando pruebes otros dispositivos.
Dicho esto, si necesita especificar márgenes diferentes para diferentes tamaños de pantalla, simplemente agregue un archivo XML en res/values
– algo como dimens.xml
:
<resources xmlns:android="http://schemas.android.com/apk/res/android" > <dimen name="my_view_margin">10dip</dimen> </resources>
A continuación, agregue uno de estos XML para cada calificador de dispositivo específico que necesite (por ejemplo, values-large
, values-sw600dp
, values-xlarge
, etc.) y modifique el valor como mejor le parezca. Cuando desee utilizar estas dimensiones en un diseño, utilice:
android:layout_margin="@dimen/my_view_margin"
Y Android escogerá el valor correcto para cualquier dispositivo en el que se esté ejecutando.
- PhoneGap FileTransfer.download espera una ruta diferente que FileSystem proporciona
- ¿Cómo obtiene Eclipse para auto-sugerir métodos?