-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better zoom gestures #65
Comments
Can you share a video of the issues you're seeing? It's difficult to visualize otherwise.
Same question. I'm not sure what's conflicting and a video will help. |
screen-20240210-201738.mp4 |
ZoomableImage(
modifier = modifier.fillMaxSize()
.combinedClickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
onDoubleClick = {},
onClick = onItemClick
),
state = state,
image = ZoomableImageSource.coil3(
model = ImageRequest.Builder(LocalPlatformContext.current)
.data(media.uri)
.placeholderMemoryCacheKey(media.toString())
.build()
),
contentScale = ContentScale.Fit,
contentDescription = media.label
) |
The issue happening at Btw, it'd be best if you can share a reproducer for me to investigate instead of going back and forth with questions. Your app looks very cool, I'd love to support it. |
Here is the app with the subsampling image applied (I've also made a custom source for coil3 (alpha) For placeholder I'm using the coil's prebuilt memory cache key to get the lower quality image that was previously loaded in a grid view https://github.com/IacobIonut01/Gallery/tree/0c3fac0b3246f5d82fb4b77ce54d267f2ac7d701 |
@IacobIonut01 I haven't gotten a chance to check out your project yet, but can you try out |
Sure, but I couldn't find it on maven |
You'll need to add the snapshot repository to your project for accessing snapshot versions: maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
} |
Yeah it's better now |
Glad to hear! Are there any remaining improvements you need? |
The only feature that is missing is progressive zoom (double tap 2x, another double tap 5x, another double tap max zoom for example) |
Cool, tracking that in #32 |
…1215) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [me.saket.telephoto:zoomable-image-coil](https://togithub.com/saket/telephoto) | dependencies | minor | `0.7.1` -> `0.8.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>saket/telephoto (me.saket.telephoto:zoomable-image-coil)</summary> ### [`v0.8.0`](https://togithub.com/saket/telephoto/releases/tag/0.8.0) [Compare Source](https://togithub.com/saket/telephoto/compare/0.7.1...0.8.0) Breaking changes - Reordered `SubSamplingImage()`'s parameters to move `Modifier` below all required parameters. New changes - Update Compose UI to `1.6.1` and Compose Multiplatform to `1.6.0-rc02` - Introduced [ZoomableState#transformedContentBounds](https://togithub.com/saket/telephoto/blob/706cf08cb976c0d9d9c6d0f95e4e64fc4efbf4ef/zoomable/src/commonMain/kotlin/me/saket/telephoto/zoomable/ZoomableState.kt#L88-L96) for observing transformed content bounds. This can be used for drawing decorations around the content or performing hit tests. - Placeholder images now respond to click listeners. Additionally, they will swallow all other zoom gestures instead of ignoring them. - [saket/telephoto#3: Read color space of bitmaps from Coil and Glide. Bug fixes - [saket/telephoto#60, [saket/telephoto#65: Improved detection of pinch-to-zoom gestures. - [saket/telephoto#8: Composables with `Modifier.zoomable()` are now drawn on the first frame. This fixes their broken layout preview. - [saket/telephoto#58: Fixed a resource leak when an image's EXIF metadata is read. - `ZoomableState#resetZoom()` now calculates the content's position on the same UI frame. - Images no longer flicker on start when they can't zoom-in any further. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOTQuMyIsInVwZGF0ZWRJblZlciI6IjM3LjE5NC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
I've tried your libray for subsampling in my Gallery app and I've noticed that the zoomable gesture handler is not as good as the previous solution I've used (https://github.com/usuiat/Zoomable) specially when used with lots of gesture (swipe up vertically, horizontal pager scroll etc)
Would be great if you can look into that library or allow the use of it because it would make the solution much better for Gallery/Media Viewer usescases
For Horizontal Pager even with the scroll disabled, it still conflicts with the other gesutres (swipe up)
Thanks!
The text was updated successfully, but these errors were encountered: