Imageview mise à l'échelle en question ConstriantLayout

voix
0

J'utilise un imageview dans une mise en page de contrainte et que vous souhaitez la largeur de ImageView être la largeur de l'écran et la hauteur pour être dynamique selon l'image.

Mon XML pour la mise en page est

<?xml version=1.0 encoding=utf-8?>
<android.support.v7.widget.CardView 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
style=@style/CardView.Light
android:layout_width=match_parent
android:layout_height=wrap_content
android:layout_marginTop=8dp>

<android.support.constraint.ConstraintLayout
    android:layout_width=match_parent
    android:layout_height=wrap_content
    android:background=@color/newsItemBackground
    tools:layout_editor_absoluteY=29dp>

    <TextView
        android:id=@ id/textTitle
        android:layout_width=0dp
        android:layout_height=wrap_content
        android:layout_marginEnd=8dp
        android:layout_marginLeft=8dp
        android:layout_marginRight=8dp
        android:layout_marginStart=8dp
        android:layout_marginTop=8dp
        android:textColor=@color/textHighEmphasis
        android:textSize=@dimen/news_title_size
        android:textStyle=bold
        app:layout_constraintEnd_toEndOf=parent
        app:layout_constraintStart_toStartOf=parent
        app:layout_constraintTop_toTopOf=parent
        tools:text=Title />

    <TextView
        android:id=@ id/textTime
        android:layout_width=0dp
        android:layout_height=wrap_content
        android:layout_marginEnd=8dp
        android:layout_marginLeft=8dp
        android:layout_marginRight=8dp
        android:layout_marginStart=8dp
        android:layout_marginTop=8dp
        android:fontFamily=@font/english_font
        android:textColor=@color/textMediumEmphasis
        android:textSize=@dimen/news_time_size
        android:textStyle=normal
        app:layout_constraintEnd_toEndOf=parent
        app:layout_constraintStart_toStartOf=parent
        app:layout_constraintTop_toBottomOf=@ id/textTitle
        tools:text=Time />

    <Button
        android:id=@ id/buttonMore
        style=@style/Widget.AppCompat.Button.Borderless.Colored
        android:layout_width=wrap_content
        android:layout_height=wrap_content
        android:layout_marginEnd=8dp
        android:layout_marginRight=8dp
        app:layout_constraintBottom_toBottomOf=parent
        app:layout_constraintEnd_toStartOf=@ id/buttonShare
        app:layout_constraintTop_toBottomOf=@ id/viewSeperator
        app:layout_constraintVertical_bias=0.0
        tools:text=readmore />

    <Button
        android:id=@ id/buttonShare
        style=@style/Widget.AppCompat.Button.Borderless.Colored
        android:layout_width=wrap_content
        android:layout_height=wrap_content
        android:layout_marginEnd=8dp
        android:layout_marginRight=8dp
        android:text=@string/share_button
        app:layout_constraintBottom_toBottomOf=parent
        app:layout_constraintEnd_toEndOf=parent
        app:layout_constraintTop_toBottomOf=@ id/viewSeperator
        app:layout_constraintVertical_bias=0.0 />


    <TextView
        android:id=@ id/textBody
        android:layout_width=0dp
        android:layout_height=wrap_content
        android:layout_marginEnd=8dp
        android:layout_marginLeft=8dp
        android:layout_marginRight=8dp
        android:layout_marginStart=8dp
        android:layout_marginTop=8dp
        android:textColor=@color/textHighEmphasis
        android:textSize=@dimen/news_body_size
        android:textStyle=normal
        app:layout_constraintEnd_toEndOf=parent
        app:layout_constraintHorizontal_bias=0.0
        app:layout_constraintStart_toStartOf=parent
        app:layout_constraintTop_toBottomOf=@ id/imageNews
        tools:text=Body />


    <View
        android:id=@ id/viewSeperator
        android:layout_width=0dp
        android:layout_height=1px
        android:layout_marginEnd=8dp
        android:layout_marginLeft=8dp
        android:layout_marginRight=8dp
        android:layout_marginStart=8dp
        android:layout_marginTop=8dp
        android:background=@color/cardSeperatorLine
        app:layout_constraintEnd_toEndOf=parent
        app:layout_constraintStart_toStartOf=parent
        app:layout_constraintTop_toBottomOf=@ id/textBody />

    <ImageView
        android:id=@ id/imageNews
        android:layout_width=0dp
        android:layout_height=wrap_content
        android:layout_marginEnd=8dp
        android:layout_marginLeft=8dp
        android:layout_marginRight=8dp
        android:layout_marginStart=8dp
        android:layout_marginTop=8dp
        android:scaleType=centerCrop
        app:layout_constraintEnd_toEndOf=parent
        app:layout_constraintHorizontal_bias=0.0
        app:layout_constraintStart_toStartOf=parent
        app:layout_constraintTop_toBottomOf=@ id/textTime
        app:srcCompat=@drawable/portait_man />


</android.support.constraint.ConstraintLayout>

</android.support.v7.widget.CardView>

Cette image semble bien dans l'éditeur de studio android mais quand je charge à l'aide de Glide, la hauteur de l'image est rognée de haut et en bas.

Image de l'éditeur est

Image

Image lors de l'exécution de l'application

image

Je chargement à l'aide du code

Glide.with(imageNews.getContext())
                .load(item.image_url)
                .into(imageNews);
Créé 02/09/2018 à 05:23
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Essayez ci-dessous

<android.support.v7.widget.CardView 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="wrap_content"
    android:layout_marginTop="8dp">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@ id/textTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:text="Title" />

        <TextView
            android:id="@ id/textTime"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:textStyle="normal"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/textTitle"
            tools:text="Time" />

        <Button
            android:id="@ id/buttonMore"
            style="@style/Widget.AppCompat.Button.Borderless.Colored"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@ id/buttonShare"
            app:layout_constraintTop_toBottomOf="@ id/viewSeperator"
            app:layout_constraintVertical_bias="0.0"
            tools:text="readmore" />

        <Button
            android:id="@ id/buttonShare"
            style="@style/Widget.AppCompat.Button.Borderless.Colored"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:text="share_button"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/viewSeperator"
            app:layout_constraintVertical_bias="0.0" />


        <TextView
            android:id="@ id/textBody"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:textStyle="normal"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/imageNews"
            tools:text="Body" />


        <View
            android:id="@ id/viewSeperator"
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/textBody" />

        <ImageView
            android:id="@ id/imageNews"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/textTime"
            app:srcCompat="@mipmap/ic_logo" />


    </android.support.constraint.ConstraintLayout>

</android.support.v7.widget.CardView>

Assurez-vous que je temporaire ai juste supprimer votre code de couleur et le texte de la chaîne.

Créé 02/09/2018 à 05:32
source utilisateur

voix
0

Gardez à l' esprit que centerCroppeut un peu agrandir l'image un peu. Si vous voulez ImageViewd'être flexible en fonction de la supprimer de la résolution de l'image , scaleTypemais cela peut conduire à un comportement inattendu.

<ImageView
        android:id="@ id/imageNews"
        android:layout_width="wrap_content" // Changed to wrap_content
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:scaleType="centerCrop"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@ id/textTime"
        app:srcCompat="@drawable/portait_man" />
Créé 02/09/2018 à 05:28
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more