2016-01-19 2 views
0

Я пытаюсь объединить два вида в макет андроида.
Я имею в ImageViewAndroid, как сопоставить эти взгляды

enter image description here

И я должен Allign текст в середине «всплывающих окон» на самом верху.

Теперь мой макет выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    android:id="@+id/rl_authorization_main" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="top" 
    android:padding="35dp" 
    > 

    <ImageView 
     android:id="@+id/iv_map" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" 
     android:adjustViewBounds="true" 
     android:src="@drawable/map_contact"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_alignTop="@+id/iv_map" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" 
     android:gravity="center" 
     android:text="@string/address" 
     android:textColor="@color/black" 
     android:textSize="16sp"/> 
</RelativeLayout> 

Но как вы можете видеть, андроид: layout_marginTop = «20dp» из TextView является жёстко, и это не даст желаемого результата на всех устройствах.
Я думал об использовании 9patch для этого «всплывающего окна», но по-прежнему будет проблемой указать его в точное место на карте.

Должен ли я как-то рассчитать фактическую высоту ImageView и установить layout_marginTop в процентах от фактической высоты?

ответ

1

Если всплывающее изображение правильно масштабируется для всех разрешений, вы можете написать андроид: layout_marginTop = "20dp".

Просто следуйте рекомендациям:

  • мал: 1 Dp = 0,5 пикселей
  • среда: 1 дп = 1 пиксель
  • большие: 1 Dp = 1,5 пикселей
  • XLarge: 1 дп = 2 пиксела
  • XXLarge: 1 Dp = 3 пикселей
  • XXXLarge: 1 Dp = 4 пикселя
Смежные вопросы