leavesczy / matisse Goto Github PK
View Code? Open in Web Editor NEWA Image/Video Selector Implemented with Jetpack Compose(一个用 Jetpack Compose 实现的 Android 图片视频选择框架)
Home Page: https://github.com/leavesCZY/Matisse/wiki
License: Apache License 2.0
A Image/Video Selector Implemented with Jetpack Compose(一个用 Jetpack Compose 实现的 Android 图片视频选择框架)
Home Page: https://github.com/leavesCZY/Matisse/wiki
License: Apache License 2.0
如果手机照片比较多。每次打开要等6 7秒才显示照片。或者可以设置缓存吗?
咱们有群吗 方便讨论一些疑难杂症
项目里面都是Compose 小白很难受啊
试用了一下app,感觉不错,但是有几个点不知道能不能优化一下:
首先是如果设备里有很多照片、分了很多相册的话,直接加载全部照片有较长的等待时间,不知道能不能实现仅加载相册(包括分页加载),可以提前按需选择相册;
还有就是现在列表页中的照片的读取加载也稍微有点慢,我了解到安卓系统有提供原生的缩略图加载功能,是否考虑在库中集成使用,例如说为MediaResource
增加一个suspend fun getThumbNail(): Bitmap
之类的函数直接调用?
请问能否设定初始文件夹,当前手机内图片过多时在"全部"检索速度会很慢
比如第一次选择了两张照片,再次选择的时候,默认这两个照片已经勾选
如题。
/使用Gilde錯誤訊息如下
Glide: Load failed for [MediaResource(id=1000000500, bucketId=540528482, bucketName=Download, uri=content://media/external/file/1000000500, path=/storage/emulated/0/Download/下載 (10).jpeg, name=下載 (10).jpeg, mimeType=image/jpeg)] with dimensions [1080x2134]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
使用 Matisse 取得無法顯示的uri
content://media/external/file/1000000500
使用(PickMultipleVisualMedia)方式取得可正常顯示的 uri 範例如下
content://media/picker/0/com.android.providers.media.photopicker/media/1000000500
是否有解決的方式呢?謝謝
你好,支持java调用吗
我们现在的项目是一个老的,全部用Java开发的项目,并且目前没有使用kotlin的想法。这样的话可否使用您的这个项目呢?
如果支持,有时间计划吗
error log:
java.lang.NullPointerException: getString(columnIndex) must not be null at github.leavesczy.matisse.internal.logic.MediaProviderKt.getString(MediaProvider.kt:217) at github.leavesczy.matisse.internal.logic.MediaProviderKt.access$getString(MediaProvider.kt:1) at github.leavesczy.matisse.internal.logic.MediaProvider$loadResources$2.invokeSuspend(MediaProvider.kt:95) at github.leavesczy.matisse.internal.logic.MediaProvider$loadResources$2.invoke(Unknown Source:8) at github.leavesczy.matisse.internal.logic.MediaProvider$loadResources$2.invoke(Unknown Source:4) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) at github.leavesczy.matisse.internal.logic.MediaProvider.loadResources(MediaProvider.kt:57) at github.leavesczy.matisse.internal.logic.MediaProvider.access$loadResources(MediaProvider.kt:21) at github.leavesczy.matisse.internal.logic.MediaProvider$loadResources$4.invokeSuspend(MediaProvider.kt:145) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
错误定位
private fun Cursor.getString(columnName: String): String { val columnIndex = getColumnIndexOrThrow(columnName) return getString(columnIndex) }
改成如下,可以显示选择图片列表
return getString(columnIndex) ?: ""
RT
当前需要进入相册之后再点相机才能打开相机拍照,无法直接进行拍照,建议给MatisseContract 增加一个直接进入拍照的选项
如题
作者辛苦了。compose中用起来很方便。
在依赖了 kapt("androidx.room:room-compiler:2.5.1")之后,编译过程会失败。具体问题如下:
/Users/wangfeiwangfei/wangfei/xtd_program/Design/app/build/tmp/kapt3/stubs/debug/com/example/design/widget/engine/CoilImageEngine.java:9: 错误: 无法访问ImageEngine public final class CoilImageEngine implements github.leavesczy.matisse.ImageEngine { ^ 错误的类文件: /Users/wangfeiwangfei/.gradle/caches/transforms-3/bb316340c778c9fffa4ee71787e8cb2d/transformed/jetified-Matisse-1.0.1-api.jar(/github/leavesczy/matisse/ImageEngine.class) 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。 /Users/wangfeiwangfei/wangfei/xtd_program/Design/app/build/tmp/kapt3/stubs/debug/com/example/design/widget/engine/CoilImageEngine.java:19: 错误: 无法访问MediaResource github.leavesczy.matisse.MediaResource mediaResource, @org.jetbrains.annotations.NotNull() ^ 错误的类文件: /Users/wangfeiwangfei/.gradle/caches/transforms-3/bb316340c778c9fffa4ee71787e8cb2d/transformed/jetified-Matisse-1.0.1-api.jar(/github/leavesczy/matisse/MediaResource.class) 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
说我没有实现,可是我已经按照方法写了
为什么Gradle 各个版本都引入失败 作者能检查一下吗
I want to select all images from album?
implementation platform('androidx.compose:compose-bom:2023.04.01')
时
MatissePreviewPage 里使用了 val pagerState = rememberPagerState(initialPage = initialPage)
这个方法已经更新了
@ExperimentalFoundationApi @Composable fun rememberPagerState( initialPage: Int = 0, initialPageOffsetFraction: Float = 0f, pageCount: () -> Int ): PagerState
报错如下
java.lang.NoSuchMethodError: No static method HorizontalPager-AlbwjTQ(ILandroidx/compose/ui/Modifier;Landroidx/compose/foundation/pager/PagerState;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/pager/PageSize;IFLandroidx/compose/ui/Alignment$Vertical;Landroidx/compose/foundation/gestures/snapping/SnapFlingBehavior;ZZLkotlin/jvm/functions/Function1;Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V in class Landroidx/compose/foundation/pager/PagerKt; or its super classes (declaration of 'androidx.compose.foundation.pager.PagerKt' appears in /data/app/com.fantasy.naduo-lujl7-vPnSPpHzhg7xp-Ow==/base.apk)
如题
我试了一下保存路径是:/storage/emulated/0/Pictures/1cdd49db-.jpg,
如果能在Picture下自定义一个文件夹就好了,比如:/storage/emulated/0/Pictures/MyPicture/1cdd49db-.jpg
我选择完图片后展示在我们自己的列表里。然后点击列表里这张图片在单独放大展示出来,咱们有直接传递uri或path展示图片的接口么?
最新版本的图片加载引擎怎么变必传的了
data class Matisse(
val maxSelectable: Int,
val mimeTypes: List,
val imageEngine: ImageEngine,
val captureStrategy: CaptureStrategy = NothingCaptureStrategy
) : Parcelable {
init {
assert(value = maxSelectable >= 1)
assert(value = mimeTypes.isNotEmpty())
}
}
选择的图片有压缩吗
大佬你好,看到你的图片选择库项目很优秀,就是示例 App 中还没有图片缩放功能,正好我开发的 compose 版图片缩放组件 ZoomImage 刚刚发布了 beta 版本,可以公开测试了 ,欢迎体验并反馈意见,也可以到 release 页面下载 APK 体验效果。
已经增加
maven { url 'https://jitpack.io' }
mavenCentral()
其他github都可以更新下来的。
支持预览在线图片吗
conflicts
// build.gradle [app]
android {
//...
kotlin {
jvmToolchain(8)
}
composeOptions {
kotlinCompilerExtensionVersion '1.4.8'
}
}
dependencies {
//...
implementation "com.github.leavesCZY:Matisse:1.0.2"
def glide_version = "4.15.1"
implementation "com.github.bumptech.glide:glide:${glide_version}"
implementation 'com.github.bumptech.glide:compose:1.0.0-alpha.1'
kapt "com.github.bumptech.glide:compiler:${glide_version}"
}
// build.gradle [project]
plugins {
//...
id 'org.jetbrains.kotlin.android' version '1.8.22' apply false
}
no conflicts
// build.gradle [app]
android {
//...
composeOptions {
kotlinCompilerExtensionVersion '1.3.2'
}
}
dependencies {
//...
implementation "com.github.leavesCZY:Matisse:1.0.2"
def glide_version = "4.15.1"
implementation "com.github.bumptech.glide:glide:${glide_version}"
implementation 'com.github.bumptech.glide:compose:1.0.0-alpha.1'
kapt "com.github.bumptech.glide:compiler:${glide_version}"
}
// build.gradle [project]
plugins {
//...
id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
}
Error
xxx\CoilImageEngine.java:5: 错误: 无法访问ImageEngine
public final class CoilImageEngine implements github.leavesczy.matisse.ImageEngine {
^
错误的类文件: Z:\.repo\.gradle\caches\transforms-3\b0ef419255af1430b3c50e56e586e3cc\transformed\Matisse-1.0.2-api.jar(github/leavesczy/matisse/ImageEngine.class)
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
相册一般需要图片的裁剪功能。没看到有裁剪功能的支持
现在视频的预览跳转到第三方的app,感觉这个离开主体app的操作不太友好
机型:魅族m15 Android 7.1
复现:第一次跳转Matisse选择图片后,跳转到目标页,接着退出当前页回到首页再次跳转Matisse
compose:composeBom = "2024.03.00"(1.6.4)尝试过1.5.4
coil:2.5.0
github-matisse = "2.0.0"
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@f5cd1e3
at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1464)
at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:259)
at android.graphics.Canvas.drawBitmap(Canvas.java:1672)
at androidx.compose.ui.graphics.AndroidCanvas.drawImageRect-HPBpro0(AndroidCanvas.android.kt:275)
at androidx.compose.ui.graphics.drawscope.CanvasDrawScope.drawImage-AZ2fEMs(CanvasDrawScope.kt:256)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawImage-AZ2fEMs(LayoutNodeDrawScope.kt)
at androidx.compose.ui.graphics.drawscope.DrawScope.drawImage-AZ2fEMs$default(DrawScope.kt:551)
at androidx.compose.ui.graphics.painter.BitmapPainter.onDraw(BitmapPainter.kt:93)
at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0(Painter.kt:212)
at coil.compose.AsyncImagePainter.onDraw(AsyncImagePainter.kt:208)
at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0(Painter.kt:212)
at coil.compose.ContentPainterModifier.draw(ContentPainterModifier.kt:197)
at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:349)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:364)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:380)
at androidx.compose.ui.platform.RenderNodeApi23.record(RenderNodeApi23.android.kt:280)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:335)
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:277)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:348)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:926)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
2024-04-03 16:14:55.314 19678-19678 AndroidRuntime com.ming.opengl E at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66)
at androidx.compose.material.ripple.AndroidRippleIndicationInstance.drawIndication(Ripple.android.kt:172)
at androidx.compose.foundation.IndicationModifier.draw(Indication.kt:183)
at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:349)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.performDraw(LayoutNodeDrawScope.kt:76)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:55)
at androidx.compose.foundation.BackgroundNode.draw(Background.kt:159)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:364)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:380)
at androidx.compose.ui.platform.RenderNodeApi23.record(RenderNodeApi23.android.kt:280)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:335)
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:277)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:348)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:380)
at androidx.compose.ui.platform.RenderNodeApi23.record(RenderNodeApi23.android.kt:280)
2024-04-03 16:14:55.315 19678-19678 AndroidRuntime com.ming.opengl E at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:335)
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:277)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:348)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:926)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66)
at androidx.compose.foundation.DrawOverscrollModifier.draw(AndroidOverscroll.android.kt:81)
at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:349)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:364)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:382)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:380)
at androidx.compose.ui.platform.RenderNodeApi23.record(RenderNodeApi23.android.kt:280)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:335)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1236)
at android.view.View.draw(View.java:17338)
at android.view.View.updateDisplayListIfDirty(View.java:16312)
at android.view.View.draw(View.java:17096)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16307)
at android.view.View.draw(View.java:17096)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16307)
at android.view.View.draw(View.java:17096)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16307)
at android.view.View.draw(View.java:17096)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16307)
at android.view.View.draw(View.java:17096)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16307)
at android.view.View.draw(View.java:17096)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.draw(View.java:17338)
at com.android.internal.policy.DecorView.draw(DecorView.java:779)
at android.view.View.updateDisplayListIfDirty(View.java:16312)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:661)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:667)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:775)
2024-04-03 16:14:55.315 19678-19678 AndroidRuntime com.ming.opengl E at android.view.ViewRootImpl.draw(ViewRootImpl.java:2957)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2765)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2351)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1383)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6592)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
at android.view.Choreographer.doCallbacks(Choreographer.java:778)
at android.view.Choreographer.doFrame(Choreographer.java:692)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6466)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1003)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:893)
大佬好,请问如果我要试下相册模式下图片、视频二选一,支持不?就是选择了视频,就不能选图片,反之一样。
问一下,想用这个项目学习一下android新特性,是否合适呢。东西多吗
如果不支持,可以考虑改造一下^_^
如题,这种操作并不是很友好
implementation("me.saket.telephoto:zoomable-image-glide:${zoomableImageVersion}")
val zoomableImageVersion = "0.6.2"
我引用完只有ZoomableImage,但没有ZoomableGlideImage。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.