Как изменить размер изображения вместо исчезновения текста при нехватке места? - PullRequest
1 голос
/ 30 ноября 2011

Когда экран слишком мал, чтобы содержать все элементы макета в их естественном размере (скажем, например, когда экран меньшего размера переходит в альбомный режим), я замечаю, что это выглядит так, будто Android сначала скрывает TextViews, а затем сжимает изображения до они подходят. Это моё впечатление, может я не совсем прав. У меня такой вопрос: возможно ли сначала сделать так, чтобы размер изображений был изменен? Таким образом, текст будет по-прежнему видимым, даже если изображения должны быть достаточно маленькими.

Вот один из многих примеров. Параметр scaleType не имеет значения. Судя по моим наблюдениям, если Android не хватает места на экране и ему нужно решить, сжимать ли изображение или обрезать / скрыть текст ... текст будет поврежден первым.

<?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" >

    <ImageView
        android:src="@drawable/large_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerInside" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />



</LinearLayout>

Ответы [ 2 ]

1 голос
/ 21 июня 2012

Здесь попробуйте это:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:src="@drawable/large_image"
        android:layout_width="wrap_content"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:scaleType="centerInside" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />



</LinearLayout>

Это приведет к тому, что ваше текстовое представление получит wrap_content, то есть не будет сжиматься, а ImageView займет оставшееся пространство, поэтому, если он начнет сдавливаться, это будет ImageView,

Если вы беспокоитесь о том, что оно становится слишком большим, установите android:maxHeight="200dip" или что-то подобное

0 голосов
/ 20 июня 2012

http://developer.android.com/guide/practices/screens_support.html#qualifiers пользовательский вид для небольшого экрана в ландшафтном режиме должен исправить ваши проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...