在RelativeLayout中顶部对齐ImageView和TextView

时间:2018-11-24 19:27:07

标签: android android-layout android-relativelayout

我在显示屏顶部有公司徽标图像,在此下方,我希望TextView显示当前用户。但是,必须在始终为手机的不同宽度的显示器上显示。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <ImageView
        android:id="@+id/imageLogo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitStart"
        android:contentDescription="@string/lets_delight_logo"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/logo" />

    <TextView
        android:id="@+id/user"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_marginLeft="35dp"
        android:gravity="left"
        android:text="Not logged on..."
        app:layout_constraintTop_toBottomOf="@+id/imageLogo" />

</android.support.constraint.ConstraintLayout>

如果将layout_height中的ImageView设置为固定值,则可以使其在一个显示宽度上正常工作,但不能在其他宽度上工作。如果我将layout_height设置为wrap_content,则尽管设置了layout_constraintTop_toTopOf="parent",但图像还是垂直居中放置,而不是位于显示屏的顶部,除非我将scaleType="fitStart"设置为将图像移动到显示屏顶部。

但是,对于scaleType="fitStart"TextView垂直显示在ImageView底部和屏幕底部之间的中间位置。尽管设置了ImageView

,它并不紧靠layout_constraintTop_toBottomOf="@+id/imageLogo"下方

当全屏显示时,如何使ImageView自动缩放到图像的高度,并以一种允许TextView直接位于其下方的方式显示?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题... ImageView被显示为正方形图像,高度和宽度均被设置为显示器的宽度,TextView被设置为正方形。

将此图像添加到ImageView会以原始宽高比显示图像,并且一切都会按预期显示:)

  

android:adjustViewBounds =“ true”