Search code examples
androidimageimageviewsizesizing

Image in ImageView showing up smaller than expected (Android)


I have this animation/code where a tap on the photo enlarges it to the full screen while the rest of the screen turns black. When I use this banana stock photo the size turns out large enough. enter image description hereHowever, when I pull images from the web using an API the images turn out very small enter image description here I tried checking the size of the image and it does not seem to be naturally that small. The water bottle image is actually h:89 and w:273 pixels when downloaded from the source.

//pulling the image and finding its sizes
Glide.with(getContext()).load(currentFood.getImageUrl()).into(ivFullScreen);
    int ih=ivFullImage.getMeasuredHeight();//height of imageView = 1440
    int iw=ivFullImage.getMeasuredWidth();//width of imageView = 2464
    int iH=ivFullImage.getDrawable().getIntrinsicHeight();//original height of underlying image = 3332
    int iW=ivFullImage.getDrawable().getIntrinsicWidth();//original width of underlying image = 4442
    Toast.makeText(getContext(), "view height: " + ih + " view width: " + iw + " image height: " + iH + " image width: " + iW, Toast.LENGTH_LONG).show();
The Toast showed that the `ivFullImage` size is h:1440 and w:2464 and the image's size is h:3332 and w:4442.

XML:

<LinearLayout android:id="@+id/llFullScreen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000"
    android:alpha="0.0"> 
</LinearLayout> 
<ImageView android:id="@+id/ivFullImage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/bananas1"
    android:scaleType="centerInside"
    android:visibility="invisible"
    />

Solution

  • Just try to add android:adjustViewBounds="true" attribute to your ImageView :

    <ImageView android:id="@+id/ivFullImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/bananas1"
        android:scaleType="centerInside"
        android:adjustViewBounds="true" />
    

    More info : ImageView