Comments (4)
I like the idea of a PreviewImageLoader
but ImageLoader
isn't a class we own. Same for the equivalent classes for GlideImage
and PicassoImage
.
We could abstract these away behind a ImageLoadEngine
class and do something similar though.
from accompanist.
This may be a terrible/impossible idea (I'm still very new to Compose and in way over my head here), but ...
Is there some way that you can "detect" that the composable is being rendered as a preview?
If so, maybe when the *Image()
composable detects that it's in preview mode, it attempts to use a (developer defined) PreviewImageLoader
if it exists instead of its normal ImageLoader
. Defining a PreviewImageLoader
could be as simple as defining a map of the url's that are used in previews to local resources to load when one of the url's is found?
Or maybe you don't need the detection and PreviewImageLoader
at all ... Maybe the developer could supply the standard ImageLoader
with a map of url->drawable, and anytime the loader is asked to load one of those urls, it will use the drawable instead of trying to fetch the url.
Another (probably really bad) idea ... when the data
parameter is parsed and is a string, check to see if it's a URL or if its specifies drawable (like "R.drawable.my_preview_image"). If it's determined to be a drawable, the actual resource could be parsed out, and the drawable loaded and returned. Something like this extension method on R.drawable could be used to parse the drawable string into an actual drawable int:
fun R.drawable.fromString(drawable: String): Int {
try {
val field = javaClass.getField(drawable.replace("R.drawable.", ""))
return field.getInt(field)
} catch (ex: Exception) {
TODO("Uh oh!")
}
}
from accompanist.
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.
from accompanist.
Closing this, as previewPlaceholder
was added a few releases ago.
from accompanist.
Related Issues (20)
- [WebView] Flickering when used inside a HorizontalPager HOT 1
- [Pager] Pages do not get disposed. HOT 1
- [System UI Controller] Can calls to show/hide system ui be idempotent? HOT 1
- [System UI Controller] Document migration path
- [Navigation Material] bottomSheet backstack not work HOT 3
- Landroidx/compose/material/ModalBottomSheetKt; or its super classes HOT 3
- 0.33.1-alpha is not compatible with compose 1.6.0-alpha06 or later HOT 2
- [System UI Controller] Deprecation and Activity.enableEdgeToEdge HOT 9
- Question: Dismiss bottom sheet programmatically? HOT 2
- [WebView] In Android 13, Compose Accompanist WebView is initially zoomed. HOT 5
- When view the dialog in Compose Immersive mode, the system bar appears. HOT 2
- [Permissions] Pass PermissionStatus instead of boolean to onPermissionResult HOT 6
- [Test Harness]
- [Navigation Material] onResume/onPause lifecycle events are not received for bottomSheet destination HOT 1
- [Navigation Material] Incorrect back behavior with nested navigator HOT 2
- Stop [Permissions]
- Incorrect behaviour when bottom sheet is closed by clicking on its background HOT 3
- [Navigation Material] HOT 1
- [BottomSheetNavigator] NullPointerException (race-condition?) when using back button HOT 6
- [WebView] Doesn't save state when recycled in a LazyColumn HOT 2
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 accompanist.