Woton Sampaio
Woton Sampaio

Reputation: 456

ImageView with spacing even with `wrap_content`

Can someone help me? My ImageView gets huge spacing for no apparent reason. Xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/fragment_container_3"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_marginTop="50dp"
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.CardView
                xmlns:card_view="http://schemas.android.com/apk/res-auto"
                android:id="@+id/cv1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:layout_marginBottom="6dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                card_view:cardElevation="10dp"
                card_view:cardCornerRadius="4dp">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                    <ImageView
                        android:id="@+id/img"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_marginBottom="0dp"
                        android:padding="0dp"
                        android:src="@drawable/list_cli2"
                        android:contentDescription="123" />

                    <TextView
                        android:id="@+id/totalCli"
                        android:layout_width="300dp"
                        android:paddingBottom="10dp"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:textColor="#fff"
                        android:layout_marginTop="10dp"
                        android:text="Total de Clientes: Buscando..."
                        android:textAllCaps="false"
                        android:textAppearance="@style/TextAppearance.AppCompat.Title" />

                    <com.github.mikephil.charting.charts.PieChart
                        android:id="@+id/cliChar"
                        android:layout_width="300dp"
                        android:layout_height="200dp"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="21dp" />

                </RelativeLayout>

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

            ...
        </RelativeLayout>

    </ScrollView>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/refresh"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom|right"
        android:layout_marginRight="18dp"
        android:layout_marginBottom="60dp"
        android:clickable="true"
        app:backgroundTint="@android:color/background_dark"
        app:fabSize="normal"
        app:srcCompat="@drawable/refresh"/>

</FrameLayout>

Stays like this:

enter image description here

If I set the android: layout_height = "" with a low value, type 200dp, the spacing goes away, but in this case, on smaller devices, the view will be out of date. Already tried:

Does anyone know how to solve it?

If I put it outside the ScrollView, ImageView is centered in the middle of the screen

Upvotes: 1

Views: 66

Answers (2)

Pai-Hsiang Huang
Pai-Hsiang Huang

Reputation: 372

It looks like your list_cli2 drawable already has the white space. Check it by open it with the image editor and see if the white space is there.

Upvotes: 0

Levi Moreira
Levi Moreira

Reputation: 12007

Add this to your imageview:

android:scaleType="centerCrop"

The scale type property will tell how the image should fit within the available space. Center crop will make it fill the whole space, but as a trade off the image will seem zoomed. There are other scale types you can try here.

Upvotes: 1

Related Questions