
kotlin
文章平均质量分 81
zhangphil
zhangphil@live.com
展开
-
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)
本文在之前的基础上,进一步优化了Android应用中Coil 3.2.0版本加载缩略图和正式图的实现。主要改进点在于,当正式图加载完成后,主动删除缓存中的缩略图,以节省内存资源。文章提供了相关的Kotlin代码示例,并指出尽管配置了磁盘缓存路径,但实际运行时缓存文件为空,表明磁盘缓存未生效。作者建议将缩略图和正图的内存缓存合并为单一缓存系统,以提升性能。此外,文章还列出了所需的权限声明和Coil库的依赖项,包括对GIF、视频和SVG格式的支持。更多细节可参考CSDN博客链接。原创 2025-05-15 23:10:18 · 499 阅读 · 0 评论 -
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(六)
本文介绍了在Android应用中使用Coil 3.2.0版本加载缩略图和正式图的实现方法,并提供了相关的Kotlin代码示例。文章提到,尽管配置了磁盘缓存路径,但实际运行时缓存文件为空,表明磁盘缓存未生效。此外,作者建议将缩略图和正图的内存缓存合并为单一缓存系统,以优化性能。文章还列出了所需的权限声明和Coil库的依赖项,包括对GIF、视频和SVG格式的支持。更多细节可参考CSDN博客链接。原创 2025-05-14 23:32:48 · 445 阅读 · 0 评论 -
Kotlin高阶函数多态场景条件判断与子逻辑
Kotlin高阶函数允许将函数作为参数传递,实现多态场景下的条件判断与子逻辑切换。在示例代码中,somefun是一个高阶函数,根据条件分别指向multi和add函数,分别实现乘法与加法操作。通过invoke方法调用函数,动态执行不同逻辑。这种设计在Android开发中尤为有用,例如将耗时操作从主线程切换到非主线程执行,处理完成后将结果返回主线程。Kotlin的高阶函数特性简化了复杂逻辑的实现,提升了代码的灵活性与可维护性。原创 2025-05-10 23:12:27 · 1054 阅读 · 0 评论 -
Android RecyclerView自带的OnFlingListener,Kotlin
文章浏览阅读338次。Android不用OnScrollListener采用GestureDetector结合OnTouchListener实现ListView下拉/上拉刷新通常Android的ListView的下拉/上拉刷新实现,使用OnScrollListener比较简单,比如如果要实现下拉见顶刷新,思路是在OnScrollListener判断当前ListView的滚动状态,如果滚动停止,则将此时Lis。文章浏览阅读428次。原创 2025-05-08 23:13:52 · 712 阅读 · 0 评论 -
Android RecyclerView横竖屏OnGlobalLayoutListener/OnPreDrawListener/onDraw/onMeasure/onLayout值变化,Kotlin
文章浏览阅读2.9k次。Android可收缩/扩展的TextView【1】在一些应用中,比如腾讯的应用市场APP应用宝,关于某款应用的介绍文字,如果介绍文字过长,那么不是全部展现出来,而是显示三四行的开始部分(摘要),预知全部的内容,用户点击展开按钮即可查阅全部内容。这样的设计有一定的优越性,毕竟用户的时间有限,注意力和关注力也有限,在使用APP时候,用户需要在最短时间内尽可能快速浏览和查阅到更主要内容,_android 可扩展文本框。原创 2025-05-06 23:10:53 · 900 阅读 · 0 评论 -
Android启动应用时屏蔽RecyclerView滑动,延时后再允许滑动,Kotlin
文章浏览阅读338次。Android不用OnScrollListener采用GestureDetector结合OnTouchListener实现ListView下拉/上拉刷新通常Android的ListView的下拉/上拉刷新实现,使用OnScrollListener比较简单,比如如果要实现下拉见顶刷新,思路是在OnScrollListener判断当前ListView的滚动状态,如果滚动停止,则将此时Lis。文章浏览阅读428次。原创 2025-04-29 23:16:57 · 1036 阅读 · 0 评论 -
Kotlin await等待多个异步任务都完成后才进行下一步操作
这在业务开发中比较有用,试想一种场景,一个任务c的执行,必须依赖(等待)另外两个并行子任务a,b的结果,但这两个并行任务a、b何时结束何时返回结果并不确定。把a、b包装成suspend任务,通过关键字await(),等待两个异步任务a,b都完成后才进行下一步c。文章浏览阅读1.9k次。本文详细介绍Java并发中CountDownLatch的使用方法,演示如何利用它等待一组线程完成后再执行后续操作,适用于需要同步多个线程场景。代码运行后,必须等待a,b两个异步任务都返回结果后才能进行下一步操作。原创 2025-04-28 23:26:21 · 1136 阅读 · 0 评论 -
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(五)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-04-27 23:18:44 · 940 阅读 · 0 评论 -
Kotlin协程Semaphore withPermit约束并发任务数量
本文介绍了如何使用Kotlin的协程和Semaphore进行并发控制,确保在并发环境中A、B、C三个任务按照顺序运行,即使引入Java版Semaphore也会有不同表现。简单的说,Semaphore的permits约束了同时并发的协程任务数量。当并发任务数量超过permits后,多出来的任务就要等待permits数量内的任务完成后、空出余量才能投入运行。c end 耗时=1007 @1744098014457。b end 耗时=1007 @1744098014457。1、当 permits = 1。原创 2025-04-18 23:06:14 · 963 阅读 · 0 评论 -
Kotlin整数相除精度损失roundToInt
Java小数点数字和百分号数字之间的转换小数点数字和百分号(百分比)数字之间的转换在证券金融业很常见,需要经常进行两者之间相互转换。文章讨论了Kotlin中浮点数(如1.7f)与整数(如Int)进行乘法、除法时可能出现的精度损失,并给出了示例。Kotlin toInt() +0.5 toInt() Math.round()_kotlin math.round-CSDN博客。Kotlin浮点数Float整数Int乘*除/精度损失_kotlin float乘法 精度丢失-CSDN博客。原创 2025-04-17 23:03:55 · 809 阅读 · 0 评论 -
Android ViewStub显示VISIBLE与消失GONE,Kotlin(2)
CPU返回后,会直接将GraphicBuffer提交给SurfaceFlinger,告诉SurfaceFlinger进行合成,但是这个时候GPU可能并未完成之前的图像渲染,这时候就牵扯到一个同步,Android中,用的是Fence机制,SurfaceFlinger合成前会查询Fence,如果GPU渲染没有结束,则等待GPU渲染结束,GPU结束后,会通知SurfaceFlinger进行合成,SF合成后,提交显示,最终完成图像的渲染显示。原创 2025-04-16 23:14:14 · 360 阅读 · 0 评论 -
Android ExifInterface rotationDegrees图旋转角度,Kotlin
《Android大图片之变换缩略图,以及对原始大图片按照指定宽、高裁剪成缩略图》在Android的ImageView加载图像资源过程中,出于性能和内存开销的需要,有时候需要把一个原始的超大图片按照一定比例等比例缩放成较小的缩略图,或者需要把原始的超大图片,裁剪成指定宽高值的较小图片,针对这种开发需求,可以使用Android SDK自身提供的工具类:ThumbnailUtils完成。Android旋转动画rotate动画,xml配置set实现_android xml 旋转动画-CSDN博客。原创 2025-04-15 23:17:10 · 854 阅读 · 0 评论 -
Android Coil 3 Fetcher大批量Bitmap拼接成1张扁平宽图,Kotlin(2)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。原创 2025-04-13 23:20:28 · 279 阅读 · 0 评论 -
Android ViewStub显示VISIBLE与消失GONE,Kotlin
CPU返回后,会直接将GraphicBuffer提交给SurfaceFlinger,告诉SurfaceFlinger进行合成,但是这个时候GPU可能并未完成之前的图像渲染,这时候就牵扯到一个同步,Android中,用的是Fence机制,SurfaceFlinger合成前会查询Fence,如果GPU渲染没有结束,则等待GPU渲染结束,GPU结束后,会通知SurfaceFlinger进行合成,SF合成后,提交显示,最终完成图像的渲染显示。原创 2025-04-10 23:08:44 · 764 阅读 · 0 评论 -
Android Coil 3 Fetcher大批量Bitmap拼接成1张扁平宽图,Kotlin
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。原创 2025-04-09 23:13:41 · 1015 阅读 · 0 评论 -
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(四)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-04-08 23:26:17 · 611 阅读 · 0 评论 -
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(三)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-04-07 23:21:12 · 356 阅读 · 0 评论 -
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(二)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-04-01 23:04:15 · 547 阅读 · 0 评论 -
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-03-26 23:50:13 · 581 阅读 · 0 评论 -
Android RequestListener onResourceReady return值,Kotlin
从很小的宽高开始,不断迭代增加setRectToRect的目标RectF的宽高,每次迭代加上一定时延,实现Matrix基础上的动画。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。原创 2025-03-24 23:10:58 · 466 阅读 · 0 评论 -
Android报错:java.lang.IllegalArgumentException: Software rendering doesn‘t support hardware bitmaps
【代码】Android报错:java.lang.IllegalArgumentException: Software rendering doesn‘t support hardware bitmaps。原创 2025-03-23 23:09:02 · 279 阅读 · 0 评论 -
Android Coil3缩略图直接内存复用,Kotlin(6)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-03-22 23:12:44 · 345 阅读 · 0 评论 -
概率算法:从1到1000,使得这全部一千个数字中的60%被选中,Kotlin
给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin_zhangphil的博客-CSDN博客。扁平的MutableList元素每隔若干元素一组装入新MutableList,Kotlin-CSDN博客。给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin_zhangphil的博客-CSDN博客。扁平的MutableList元素每隔若干元素一组装入新MutableList,Kotlin_kotlin mutablelist3个一组-CSDN博客。原创 2025-03-21 23:38:13 · 765 阅读 · 0 评论 -
Android Coil3 Fetcher preload批量Bitmap拼接扁平宽图,Kotlin
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。原创 2025-03-20 23:29:23 · 580 阅读 · 0 评论 -
Android Coil3阶梯preload批量Bitmap拼接扁平宽图,Kotlin
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。原创 2025-03-19 23:28:37 · 1250 阅读 · 0 评论 -
Android Coil3 custom transformations CircleCropTransformation cache into memory,Kotlin
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-03-18 23:50:48 · 953 阅读 · 0 评论 -
Android Coil3圆形CircleCropTransformation 、 圆角矩形RoundedCornersTransformation,Kotlin
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-03-17 23:14:38 · 405 阅读 · 0 评论 -
Android Glide AppGlideModule DataFetcher loadThumbnail, Kotlin
从很小的宽高开始,不断迭代增加setRectToRect的目标RectF的宽高,每次迭代加上一定时延,实现Matrix基础上的动画。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。原创 2025-03-12 23:32:13 · 898 阅读 · 0 评论 -
Android原生gif动图加载AnimatedImageDrawable
Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1)Android自己的ImageView或者View不能直接加载运行Gif图片,如果要在一个Android的ImageView中加载一个gif图片资源,则需要通过其他途径实现,我之前写了一些关于如何在Android中加载gif图片的文章:文章1,《基于开源框架Glide加载Gif_activity添加gif。原创 2025-03-08 23:09:05 · 848 阅读 · 0 评论 -
Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(5)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-03-06 23:20:24 · 1038 阅读 · 0 评论 -
Android BitmapFactory.decodeFile vs ImageDecoder.decodeBitmap,Kotlin
Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。基础上,把剪切的区域从矩形Rect变为圆形的Path,当手指在上面的ImageView移动时候,下面同等大小对应的坐标区域显示“剪切”出来的圆形图。原创 2025-03-05 23:35:26 · 466 阅读 · 0 评论 -
Android报错:java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent,Kotlin
CPU返回后,会直接将GraphicBuffer提交给SurfaceFlinger,告诉SurfaceFlinger进行合成,但是这个时候GPU可能并未完成之前的图像渲染,这时候就牵扯到一个同步,Android中,用的是Fence机制,SurfaceFlinger合成前会查询Fence,如果GPU渲染没有结束,则等待GPU渲染结束,GPU结束后,会通知SurfaceFlinger进行合成,SF合成后,提交显示,最终完成图像的渲染显示。而对SF来说,只要有合成任务,它就得再去申请VSYNC-sf。原创 2025-03-03 23:12:18 · 306 阅读 · 0 评论 -
Android Coil3配置Application单例ImageLoader,Kotlin
kotlin用object实现单例模式,companion object与java静态。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。原创 2025-03-02 23:06:46 · 981 阅读 · 0 评论 -
Android Trace埋点beginSection打tag标签,Kotlin
本文介绍了如何使用adbshell命令配合perfetto工具来捕获Android设备的systemtrace文件,包括设置跟踪时长、保存文件路径、将文件从设备拉取到电脑以及通过PerfettoUI分析trace文件。返回的是false,原因是需要手机在 开发者选项 - 系统跟踪 - 录制轨迹 ,勾选后,才会有自己打的tag标签。抓trace是没有显示 fly_tag 这段trace的,并且,程序跑起来,上面trace打好tag标签后用,用。原创 2025-03-01 23:03:41 · 1104 阅读 · 0 评论 -
Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(4)
遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-02-27 23:04:01 · 884 阅读 · 0 评论 -
Android AsyncLayoutInflater异步加载xml布局文件,Kotlin
CPU返回后,会直接将GraphicBuffer提交给SurfaceFlinger,告诉SurfaceFlinger进行合成,但是这个时候GPU可能并未完成之前的图像渲染,这时候就牵扯到一个同步,Android中,用的是Fence机制,SurfaceFlinger合成前会查询Fence,如果GPU渲染没有结束,则等待GPU渲染结束,GPU结束后,会通知SurfaceFlinger进行合成,SF合成后,提交显示,最终完成图像的渲染显示。而对SF来说,只要有合成任务,它就得再去申请VSYNC-sf。原创 2025-02-26 23:02:58 · 579 阅读 · 0 评论 -
Android ViewStub延迟初始化加载布局View,Kotlin
CPU返回后,会直接将GraphicBuffer提交给SurfaceFlinger,告诉SurfaceFlinger进行合成,但是这个时候GPU可能并未完成之前的图像渲染,这时候就牵扯到一个同步,Android中,用的是Fence机制,SurfaceFlinger合成前会查询Fence,如果GPU渲染没有结束,则等待GPU渲染结束,GPU结束后,会通知SurfaceFlinger进行合成,SF合成后,提交显示,最终完成图像的渲染显示。而对SF来说,只要有合成任务,它就得再去申请VSYNC-sf。原创 2025-02-25 23:19:34 · 526 阅读 · 0 评论 -
Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(3)
扩大了内存,但跑起来发现设置后内存还是比较小(约300mb),这是不够的,需要通过其他配置方式扩大内存空间。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。扩大了内存,但跑起来发现设置后内存还是比较小(约300mb),这是不够的,需要通过其他配置方式扩大内存空间。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。原创 2025-02-24 23:07:00 · 875 阅读 · 0 评论 -
Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(2)
Coil是专门针对Android平台上的Kotlin语言特性设计,这不像Glide,Glide的核心框架语言是Java。扩大了内存,但跑起来发现设置后内存还是比较小(约300mb),这是不够的,需要通过其他配置方式扩大内存空间。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-02-22 23:13:32 · 585 阅读 · 0 评论 -
Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(1)
Coil是专门针对Android平台上的Kotlin语言特性设计,这不像Glide,Glide的核心框架语言是Java。Coil实现看更细颗粒度的内存、磁盘缓存的客制化设置。扩大了内存,但跑起来发现设置后内存还是比较小(约300mb),这是不够的,需要通过其他配置方式扩大内存空间。遗留问题,配置的disk cache似乎没有work,指定的磁盘缓存文件路径生成是生成了,但是app跑起来运行后(图正常显示),里面是空的。2、现在分别使用缩略图内存缓存和正图内存缓存,感觉应该可以合并,只使用一套内存缓存。原创 2025-02-21 23:03:33 · 1031 阅读 · 0 评论