Comments (3)
Thanks for the repro project. It looks like this is currently working as expected as you're passing size(Size.ORIGINAL)
to the rememberAsyncImagePainter
request. This will render the image at the intrinsic dimensions of your SVG, which is width="227" height="80"
.
If you'd like the SVG to be scaled to the size of the target you can avoid specifying size(Size.ORIGINAL)
or pass a custom size (e.g. size(Size(1000, 1000))
.
from coil.
The problem is that if I remove .size()
, the image won't render when put in a Column
that is scrollable. I.e. this works:
diff --git a/app/src/main/java/com/oskar/blurry/MainActivity.kt b/app/src/main/java/com/oskar/blurry/MainActivity.kt
index e5d93c3..6a13239 100644
--- a/app/src/main/java/com/oskar/blurry/MainActivity.kt
+++ b/app/src/main/java/com/oskar/blurry/MainActivity.kt
@@ -26,13 +26,11 @@ class MainActivity : ComponentActivity() {
Column (
modifier = Modifier
.fillMaxWidth()
- .verticalScroll(rememberScrollState())
) {
val painter = rememberAsyncImagePainter(
model = ImageRequest.Builder(LocalContext.current)
.data(R.raw.figure)
.decoderFactory(SvgDecoder.Factory(useViewBoundsAsIntrinsicSize = false))
- .size(Size.ORIGINAL)
.build(),
imageLoader = ImageLoader.Builder(LocalContext.current)
.components {
but this does not:
diff --git a/app/src/main/java/com/oskar/blurry/MainActivity.kt b/app/src/main/java/com/oskar/blurry/MainActivity.kt
index e5d93c3..db0361e 100644
--- a/app/src/main/java/com/oskar/blurry/MainActivity.kt
+++ b/app/src/main/java/com/oskar/blurry/MainActivity.kt
@@ -32,7 +32,6 @@ class MainActivity : ComponentActivity() {
model = ImageRequest.Builder(LocalContext.current)
.data(R.raw.figure)
.decoderFactory(SvgDecoder.Factory(useViewBoundsAsIntrinsicSize = false))
- .size(Size.ORIGINAL)
.build(),
imageLoader = ImageLoader.Builder(LocalContext.current)
.components {
size(Size(1000, 1000))
works but feels like a bit of a hack that I would like to avoid. I don't always know if the image is a SVG or something else, like a PNG.
from coil.
@OskarPersson Yep, unfortunately I don't think there's a better way with rememberAsyncImagePainter
. It needs to know what size to decode the image at and it has to rely on Painter.onDraw
to determine the canvas size, which seems like it won't be called in this case, which makes the request hang.
AsyncImage
avoids this issue by using the composable's constraints, which isn't possible with rememberAsyncImagePainter
.
from coil.
Related Issues (20)
- IRLinkage error on Kotlin/Js HOT 6
- Not able to find ImageRequest in coil3 for multiplatform project HOT 1
- New field in ImageRequest.Builder to be able to recompose HOT 2
- When targeting Android for a KMP project using Coil 3.0.0-alpha06, attempting to use `.toBitmap()` and `.asComposeImageBitmap()` results in `Unresolved reference` HOT 6
- Duplicate class androidx.lifecycle.ViewModel in coil 2.2.0 HOT 3
- [Coil 3] make crossfade support using different scale type for placeholder vs final image HOT 3
- java.lang.IllegalArgumentException: Software rendering doesn't support hardware bitmaps HOT 1
- How to specify the width of an image? HOT 2
- Coil 3 + GIF w/o delay + Xiaomi Android 14 = GIF isn't playing HOT 5
- Gif playback can not be stopped since coil 3.x HOT 1
- Unsupported type: ImageBitmap HOT 1
- Gif playback is interrupted until next draw phase HOT 4
- coil3 loading long image will be crash HOT 3
- Issue Describetion
- coil-kt/coil HOT 1
- executeBlocking call from main thread Bug HOT 4
- Api
- Execute image request on spot from compose resources HOT 1
- GIF loading only first frame HOT 3
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.