0

Я хочу показать EditText 15dp ниже верхней части ImageView. Мой ImageView установлен в центр по горизонтали и заполняет родителя RelativeLayout, так что позиция EditText перепутана. На некоторых устройствах он отображается чуть выше ImageView. Любые идеи о том, как я могу показать это ровно на 15dp ниже верхнего края ImageView, чтобы он полностью содержался в чертеже?Как отобразить вид EditText 15dp ниже верхнего края чертежа ImageView

Спасибо!

<RelativeLayout 
     android:layout_width="320dp" 
     android:layout_height="320dp" 
     android:layout_gravity="center"> 
     <ImageView 
      android:id="@+id/image_view" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:adjustViewBounds="true"/> 
     <EditText 
      android:id="@+id/edit_text" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/image_view" 
      android:gravity="center" 
      android:textColor="#FFFFFF" 
      android:background="#00000000" 
      android:textSize="39sp" 
      android:layout_marginTop="15dp"/> 
    </RelativeLayout> 

ответ

1

Ваше расположение, кажется правильным вам просто нужно использовать Android: scaleType = «fitStart» или centerCrop вместо android:adjustViewBounds="true" и установить ширину ImageView и высоту match_parent или 320dp

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="320dp" 
    android:layout_height="320dp" 
    android:layout_gravity="center"> 

    <ImageView 
     android:id="@+id/image_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerHorizontal="true" 
     android:scaleType="fitStart" /> 

    <EditText 
     android:id="@+id/edit_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/image_view" 
     android:layout_marginTop="15dp" 
     android:background="#00000000" 
     android:gravity="center" 
     android:textColor="#FFFFFF" 
     android:textSize="39sp" /> 
</RelativeLayout> 
+0

спасибо, что спасло мне часы боли ('android: scaleType =" centerCrop "' работал). Бонусный вопрос: если я поворачиваю 'ImageView' с помощью' setRotation() ', знаете ли вы, есть ли простой способ сохранить верхнее поле 15dp для' EditText'? Ширина и высота drawable неравномерны, поэтому я попытался добавить половину разницы между высотой и шириной 'ImageView' => (height-width)/2. Тем не менее, «EditText» подталкивается. Благодаря! – Cat

+0

Рад, что я могу помочь. Я не уверен, что действительно получаю ваш бонусный вопрос, но почему бы не повернуть контейнер RelativeLayout или, может быть, вы можете поделиться изображением, объясняющим вашу точку. –

+0

. Я загружу изображение позже сегодня, чтобы объяснить :). Мне нужно сохранить горизонтальный вид «EditText», поэтому, к сожалению, я не могу повернуть весь макет. – Cat

Смежные вопросы