TextView выше ImageView: пространство между верхней частью масштабированного SVG и нижней частью TextView масштабируется - PullRequest
1 голос
/ 07 апреля 2019

В моем приложении TextView отображается над ImageView, который содержит изображение SVG.В зависимости от разрешения экрана ImageView, который ограничен (сверху и снизу например ) другим ImageView, масштабируется: таким образом, его SVG также масштабируется путем уменьшения его высоты (и ширины, пропорционально).Таким образом, пространство между TextView и ImageView технически такое же, как в Android Studio, но визуально длиннее.

Я бы хотел: чтобы в Android Studio оставалось то же пространство, что ина всех разрешениях экрана , т.е. : 8dp.

Пример:

В визуализаторе Android Studio пространство составляет 8dp:

enter image description here

В Samsung Galaxy S7, я думаю, пространство все еще составляет 8 дп, но SVG масштабируется: пространство кажется длиннее.

enter image description here

Доказательство того, что SVG масштабируется и что ImageView действительно на 8dp от TextView:

enter image description here

Знаете ли вы, как сохранить то же пространство, что и в Android Studio, независимо от разрешения экрана?

Предупреждение

Я действительно хочу масштабировать SVG (поэтому я нене хотите, например установить scale: fitXY или что-то в этом роде).Но я также хочу, чтобы расстояние между нижней частью TextView и верхней частью масштабированного SVG было 8dp на всех разрешениях экрана.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

Вы можете использовать компоновку LinearLayout с ограничениями, чтобы обеспечить фиксированную пропорцию независимо от того, что * 1001 например *

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/main_layout"
  android:orientation="horizontal"

>
    <ImageView
      android:id="@+id/img"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="40"
      />
    <TextView
      android:id="@+id/txt"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="60"

       />

 </LinearLayout>

Так что независимо от того, что, в нашем примере, изображение всегда будет составлять 40% горизонтального пространства, в то время как текст будет составлять 60%. Я считаю, что вы можете применить эту идею в вашей ситуации

0 голосов
/ 07 апреля 2019

Это предположение, но я думаю, что ваше изображение вызывает проблему.

Как вы сказали, ваше пространство постоянно одинаково, но из-за того, что у вашего изображения белый фон, когда вы используете большее изображение, белый фон масштабируется, и кажется, что пространство между вашим текстом и изображением больше.

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

...