Mi aplicación para Android actualmente tiene dos diseños para su pantalla de inicio, retrato y paisaje. Ambos utilizan el mismo formato simple - una imagen que es del mismo tamaño que la pantalla, que se celebró en un sencillo diseño lineal:Disposición de Android y cambio automático de tamaño de la imagen
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter"
android:src="@drawable/splash_p"
/>
</LinearLayout>
La imagen utilizada es de 320 W x 480h y Android cambia de tamaño automáticamente para ajustarse a la pantalla, independientemente de el tamaño de pantalla del dispositivo. Obviamente, la imagen no es tan nítida cuando se cambia el tamaño de una tableta, por ejemplo.
Debo señalar aquí que mi objetivo es reducir el tamaño de la aplicación final tanto como sea posible, y soy consciente de que podría incluir diferentes diseños y tamaños de las mismas imágenes para cada tamaño de pantalla diferente.
Mi pantalla de presentación se compone del nombre de la aplicación en el tercio superior de la pantalla y luego una imagen en los dos tercios inferiores de la pantalla. Para ahorrar memoria, quiero recortar el nombre de la aplicación y la imagen en dos imágenes separadas, y luego mostrarlas en un diseño vertical vertical para dispositivos sostenidos en modo retrato. Luego usaré un diseño horizontal lineal de la imagen y luego el nombre de la aplicación para el modo horizontal.
Para el diseño vertical Tengo esto:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
<View android:layout_height="45dp" android:layout_width="45dp" />
<ImageView android:layout_height="fill_parent"
android:src="@drawable/splashtext"
android:scaleType="fitCenter"
android:layout_gravity="center"
android:layout_width="fill_parent"></ImageView>
<View
android:layout_height="35dp"
android:layout_width="35dp" />
<ImageView
android:scaleType="fitCenter"
android:src="@drawable/splashpic"
android:layout_height="fill_parent" android:scaleType="fitCenter" android:layout_width="fill_parent" android:layout_gravity="center"/>
</LinearLayout>
</LinearLayout>
Cuando muestro lo anterior en eclipse, se ve bien para los teléfonos inteligentes, pero las imágenes no se escalan hasta cuando se muestra en una tableta, aunque Estoy usando el argumento android: scaleType = "fitCenter". He intentado usar inmersiones en lugar de fill_parent en la vista de la imagen layout_width y layout_height, pero eso tampoco funciona.
¿Qué estoy haciendo mal? Hay otra manera de hacer esto?
Gracias
He editado la cuestión de incluir este XML revisado basado en ayuda @ KaHa6u 's abajo. Así que ahora tengo:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<View
android:layout_height="15dp"
android:layout_width="15dp"
/>
<ImageView android:layout_height="wrap_content"
android:src="@drawable/splashtext"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_weight="1">
</ImageView>
<View
android:layout_height="15dp"
android:layout_width="15dp"
/>
<ImageView
android:scaleType="fitXY"
android:src="@drawable/splashpic"
android:adjustViewBounds="false"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="4"
android:layout_gravity="center"/>
</LinearLayout>
</LinearLayout>
que escala verticalmente, pero no horizontalmente, por lo que termino con imágenes altos y delgados cuando el tamaño de la pantalla aumenta el.
Gracias por este @ KaHa6uc.Lo cambié a fitXY y también he usado adjustViewBounds. Ahora la pantalla se escala verticalmente, pero no horizontalmente. He editado mi pregunta para incluir el diseño revisado. ¿Alguna más ideas a nadie? – basinbasin