Comments (9)
@fernandospr You can work around this by setting the scaleType
to centerCrop
or scale(Scale.FILL)
on your request.
This occurs because wrap_content
is evaluated to 1px whereas Glide and Picasso treat it as the height of the parent. I'm working on fixing this behaviour for 0.7.0
.
from coil.
Good catch! I think this is because we force PixelSize
's dimensions to be > 0. Relaxing that limitation to >= 0 should solve the issue, but might cause side-effects. Going to work on this later tonight.
from coil.
Hi @colinrtwhite, I'm using 0.6.1 and using wrap_content
for both width and height doesn't work either. This was my first test of the library and I was surprised it didn't work out of the box, wondering what I did wrong, until I tried using fixed values for width/height.
I'm not sure if this is the expected behavior. If it is, then I suggest you to add a comment about this on the migration guide from libraries such as Glide or Picasso which do work using wrap_content
out of the box and it's possible that ImageViews are using wrap_content
.
Sample using Picasso, Glide, Coil
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:srcCompat="@tools:sample/avatars" />
Picasso
Code
Picasso.with(this).load("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png").into(imageView)
Result
Glide
Code
Glide.with(this).load("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png").into(imageView)
Result
Coil
Code
imageView.load("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")
Result
from coil.
Unfortunately #29 does not seem to fully solve the issue. On the sample app the ImageView now has a 1:1 aspect ratio instead of the 2:1 the image being loaded has:
from coil.
@Stonos This is because the ImageView is set to scaleType="fitCenter"
, which will "fit" the image to the smallest dimension, which in this case is 1px. This will cause us to end up loading the image at 1x1. Changing to scaleType="centerCrop"
or setting scale(Scale.FILL)
on the request, will load the image in as intended.
I believe this is working as intended, but let me know if this seems unintuitive.
from coil.
You're right, centerCrop
works fine!
The reason I thought fitCenter
would also work is because it works when setting an ImageView's src
via XML:
from coil.
Ah good point. Looks like ImageView
uses the parent's dimensions in that case. I think we could do this in Coil, but need to verify. I'd like to keep the same behaviour between android:src
and load
. Going to re-open this issue to track.
from coil.
I'm playing with a few different View measurement algorithms in the branch colin/view_size_experiment
. I'm going to timebox this and ship the current behaviour in 0.6.1
, though it's possible it might change in future versions.
from coil.
There was a similar problem, I set the layout_width to 0dp, and the picture did not load. Wrap_content solved the problem :)
from coil.
Related Issues (20)
- ByteArrayFetcher not saved on disk HOT 1
- java.lang.IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied HOT 2
- add new decoder: coil3.svg.ResvgDecoder(use resvg to decode svg image) HOT 2
- 新增浏览器快捷操作
- Image is flickering in compose horizontal view HOT 2
- Update NetworkObserver to call connectivityManager.registerDefaultNetworkCallback instead of connectivityManager.registerNetworkCallback HOT 3
- Coil3 alpha-08 not compatible with ktor 3.0-beta02 HOT 2
- Turn off network cache, clear app file will not be able to load images HOT 1
- Investigate SieveCache as coil memory cache for better performance HOT 6
- Why does Coil always refresh when loading different images with the same URL by default? Is it a bug? HOT 1
- Support fonts on SVG files HOT 1
- ImageBitmap Support for multiplatform HOT 2
- coil-network-ktor3 version: 3.0.0-alpha09 causes Ktor HttpClient to crash HOT 2
- Green overlay on images with AVIF format HOT 6
- [wasmJS] Build Error. HOT 1
- [Coil-3] SVG flickering while scrolling HOT 2
- Coil 3: Differing APIs make writing multiplatform code fiddly HOT 3
- Coil disk cache doesn't work when loading an icon file manually HOT 1
- Coil with web view for caching image HOT 1
- [Coil 3] Frequent `ImageDecoder$DecodeException: Input was incomplete.` when displaying an Uri from the Android PhotoPicker in Compose Multiplatform. HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coil.