Нужна помощь с ImageView всегда отображается неправильно - PullRequest
0 голосов
/ 22 ноября 2010

Мой ImageView по какой-то странной причине всегда отображает картинку в середине, слева от моего экрана, несмотря на то, что XML-код настаивает на том, чтобы она была в центре.мой код xml для моего макета:

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

    <ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/image_view"
    android:layout_weight="1.0"/>

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/message"
    android:gravity="center_horizontal"
    android:padding="10dip"/>

    <Button
            android:layout_gravity="center_horizontal"
    android:layout_width="fill_parent"
    android:textStyle="bold" android:id="@+id/action_button" android:selectAllOnFocus="false" android:layout_height="100dip" android:text="Click here to preform actions"/>
</LinearLayout>

Итак, страница должна отображаться в виде картинки посередине, увеличивая ширину экрана, текст под этим и кнопку под этим.Но по какой-то причине картинка отображается в виде маленького миниатюры прямоугольника в левом среднем углу экрана - какие-нибудь идеи по поводу обходного пути?

1 Ответ

2 голосов
/ 22 ноября 2010

Предполагая, что вы хотите, чтобы ваша картинка была центрирована в верхнем поле, вы не хотите android:gravity="center", вы просто хотите android:scaleType установить на самом ImageViewcenter» - правильное значение, если вы не хотите масштабировать;centerInside, вероятно, уместно, если вы это сделаете (в этом случае вам нужно определить какие-то размеры или вес для вашего ImageView).Подробнее о значениях scaleType см. в документации .

Вы также не хотите, чтобы высота изображения была установлена ​​на fill_parent, иначе это будет сделано (что означает отсутствие текста под ним, поскольку изображение заполняет весь родительский элемент LinearLayout, не оставляя места для текста).Вы, вероятно, хотите, чтобы высота ImageView была установлена ​​на wrap_content или на некоторую фиксированную высоту (например, 100dip).

...