Как сделать так, чтобы просмотр текста начинался с 26% экрана и доходил до 96% экрана? - PullRequest
2 голосов
/ 08 июня 2011

Мне было интересно, как сделать так, чтобы TextView отображался так, как показано на картинках ниже:

маленький http://raphaeu.com/gvt/img_forum_small.jpg средний http://raphaeu.com/gvt/img_forum_medium.jpg большой http://raphaeu.com/gvt/img_forum_large.jpg

Другими словами, мне нужно иметь возможность позиционировать TextView следующим образом:

  1. Верхний левый угол TextView должен находиться на 38% экрана (по вертикали) и 26% экрана (по горизонтали).

  2. Правый нижний угол TextView должен находиться на 100% экрана (по вертикали) и 96% экрана (по горизонтали).

Таким образом, я могу гарантировать, что макет TextView всегда будет пропорционален желаемому, независимо от размера экрана устройства.

PS: Я считаю, что система координат в Android начинается в верхнем левом углу экрана (0, 0), а координаты правого нижнего угла - (100% , 100%).

Заранее большое спасибо!

Ответы [ 5 ]

1 голос
/ 08 июня 2011

Вы можете сделать это с помощью параметра android: layout_weight.Если у вас есть 2 вида внутри LinearLayout и вы хотите, чтобы первый составлял 25%, а второй 75%, вы устанавливаете их веса на 75 и 25 (т.е. в обратном порядке).

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="4">

        <View
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="70" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="26"
            android:text="Text" />

    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="96" />

</LinearLayout>
1 голос
/ 08 июня 2011

Как правило, позиционирование представлений в Android выполняется в формате XML. Прочтите этот пост, он вам обязательно поможет: Объявление макета

0 голосов
/ 08 июня 2011

Позднее редактирование: изменено, чтобы включить прокрутку.

Это выполнимо, но это очень уродливо быстро.Вот что мне удалось сделать (вид, который вам нужен - красный прямоугольник):

enter image description here

Я использовал атрибуты TableLayout и layout_weight.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    
             android:layout_width="match_parent"
             android:layout_height="match_parent">
    <TableRow android:layout_weight="38" />
    <TableRow android:layout_weight="62">
        <TextView android:layout_weight="26" />
        <ScrollView android:layout_weight="70" 
                    android:layout_height="match_parent" 
                    android:layout_width="0dp"
                    android:background="#ff0000">
            <TextView android:layout_width="match_parent"
                      android:layout_weight="match_parent" />
        </ScrollView>
        <TextView android:layout_weight="4" />
    </TableRow>
</TableLayout>
0 голосов
/ 08 июня 2011

Вы также можете использовать android:padding или android:layout_margin согласно отступ или margin

0 голосов
/ 08 июня 2011

Если вы не возражаете против создания ваших представлений программно, во время выполнения вы можете определить размер экрана, а затем просто умножить его на те константы, которые вам нужны, чтобы запустить представление текста в соответствующем месте.

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