Свойства изображения при использовании линейного макета в Android - PullRequest
0 голосов
/ 21 февраля 2012

Привет, я пытаюсь создать простую страницу для 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:background="@drawable/gripbckgrnd" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="140dp"
        android:layout_height="211dp"
        android:src="@drawable/grip1" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="356dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="97dp"
        android:gravity="center_horizontal"
        android:text="@string/griptext"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Я рекомендую не указывать компоненты пользовательского интерфейса даже в dp, если вам это не нужно. Поскольку размеры экранов могут незначительно отличаться (например, некоторые планшеты имеют размер 1280x800, а некоторые - 1280x720), лучше использовать спецификации, которые могут растягиваться и давать немного, например match_parent, wrap_content и layout_weight. Вот пример макета, который использует некоторые из этих атрибутов.

    <?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"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:gravity="center"
    android:layout_weight="1"
    android:text="@string/hello"
    />
<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="2"
    android:src="@drawable/my_drawable"
    android:contentDescription="@string/describe_drawable"/>
</LinearLayout>

Кроме того, ваш пример помещает изображение сверху. : -)

1 голос
/ 21 февраля 2012

При использовании LinearLayout вы можете указать атрибут ориентации следующим образом:

android:orientation="vertical"

(по умолчанию установлено горизонтальное положение, что вызывает проблемы)

...