Android макет, изменить размер в процентах и ​​сохранить пропорции - PullRequest
4 голосов
/ 17 ноября 2010

У меня есть изображение, которое я создал в большем измерении, чем то, как оно, скорее всего, будет отображаться. Допустим, это 200х200. Я тестирую устройство с разрешением 800х480 в альбомном режиме. Моя цель состоит в том, чтобы изменить размер этого изображения до 1/4 высоты текущего вида, закрепить в верхнем правом углу, а также сохранить соотношение сторон. Это будет означать, что при просмотре в разрешении 800x480 мое изображение будет в правом верхнем углу и будет отображаться с разрешением 120x120.

Я подумал, что способ сделать это - использовать вертикальную LinearLayout с weightSum и layout_weights среди элементов (используя пустые элементы с layout_weight для заполнения, если необходимо) и AdjustViewBounds = true в ImageView, но я не могу получить эффект, который я собираюсь. Есть идеи?

Ответы [ 2 ]

5 голосов
/ 18 ноября 2010

Вам даже не нужно беспокоиться о weightSum или AdjustViewBounds, я не думаю.Вы должны быть на правильном пути, хотя.Попробуйте этот (непроверенный) макет и посмотрите, получит ли он ваш результат:

<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:id="@+id/qtr_img"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src="@drawable/your_image"
        android:scaleType="fitCenter"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        />
    <View
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        />
</LinearLayout>

Это просто помещает пустой вид под изображением, взвешенный, чтобы занять 3/4 экранав то время как ImageView занимает оставшиеся 1/4.Вы также можете использовать layout_gravity="right|top" вместо alignParentTop и alignParentRight, но я просто предпочитаю это так.Дайте мне знать, если это работает.

0 голосов
/ 18 ноября 2010

и теперь это, как, например, если вы создадите форму, и она поддерживает приложение для телефона, разрешение которого отличается от эмулятора (метки не выровнены). Можно ли стандартизировать разрешение, использовать «%» в качестве единицы измерения вместо px, ...?

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