首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 开发中使用协程 | 背景介绍

协程常规函数的基础上新增了两项操作。...如果需要处理一个函数,且这个函数主线程上执行太耗时,但是又要保证这个函数是主线程安全的,那么您可以让 Kotlin 协程 Default 或 IO 调度器上执行工作。... Kotlin 中,所有协程都必须在调度器中运行,即使它们是主线程上运行也是如此。协程可以自行暂停,而调度器负责将其恢复。...Kotlin 提供了三个调度器,您可以使用它们来指定应在何处运行协程: 如果您在 Room 中使用了 suspend 函数、RxJava 或者 LiveData,Room 会自动保障主线程安全。... get 的主体内,调用 withContext(Dispatchers.IO) 来创建一个 IO 线程池中运行的块。您放在该块内的任何代码都始终通过 IO 调度器执行。

1.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

(译)SDL编程入门(13)透明度混合

随着正面纹理越来越透明,我们就能看到更多的背面纹理。正如你代码中看到的,我们成功加载正面纹理后,我们将SDL BlendMode设置为blend,这样就启用了混合。...由于背景不会是透明的,所以我们不必对其设置混合。 现在alpha是如何工作的呢?Alpha就是不透明度,不透明度越低,我们就越能看透它。就像红色、绿色或蓝色的颜色组件一样,当调制它时,它从0到255。...比如说,如果我们白色背景上有正面图像。 这是255(100%alpha)时的正面图像: ? 这是191(75%alpha)的正面图像: ? 这是127(50%alpha)的正面图像: ?...这是63(25%alpha)时的正面图像: ? 这是0(0%alpha)时的正面图像: ? 如你所见,alpha越低越透明。...清空屏幕后,我们先渲染背景,然后在其上渲染前端调制纹理。就在渲染前面的纹理之前,我们设置它的alpha值。尝试增加/减少alpha值,看看透明度对渲染的影响。

1.2K52

SDL系列讲解(四) demo讲解

含义是,如果使能(SDL_TRUE),我们会将图片中对应的颜色值处理成透明色,也就是抠掉了里面的某个颜色。一般用在去除一种底色。这里我们将sdl.bmp图片里面的白色去掉。...//设置图片中的白色为透明SDL_SetColorKey(bmp, SDL_TRUE, 0xffffff); 下来我们清除了全部事件,避免在过程中有消息进来。...渲染过程中,我们使用SDL_PollEvent来获取是否有事件传过来,如果有,我们看下,如果是退出,或者有按键或者有手指触摸滑动,我们退出循环。...如果没有消息,我们执行渲染,具体为:使用SDL_SetRenderDrawColor设置一个渲染颜色,使用 SDL_RenderClear进行填充,完成背景。...//使用红色填充背景 SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); SDL_RenderClear(renderer

1.6K50

(译)SDL编程入门(8)几何图形渲染

另外,请注意,我们每一帧都用SDL_SetRenderDrawColor将清除颜色设置为白色,而不是初始化函数中设置一次。我们将在主循环结束时介绍为什么会发生这种情况。...这里我们设置的矩形x方向上的宽度为屏幕宽度的四分之一,y方向上的高度为屏幕高度的四分之一,而且宽度/高度为屏幕的一半。...Alpha控制某物的不透明程度,我们将在透明度教程中介绍。这些值的范围从0到255(或如上图所示的FF十六进制),并混合在一起以创建你屏幕上看到的所有颜色。...这个对SDL_SetRenderDrawColor的调用将绘图颜色设置为不透明的红色。 设置好矩形和颜色后,调用SDL_RenderFillRect[2]来绘制矩形。...如果没有这个调用,那么屏幕就会用上次用 SDL_SetRenderDrawColor 设置的任何颜色来清除,本例中就会产生黄色背景 这里[7]下载本教程的媒体和源代码。

1.4K30

Java游戏编程不完全详解-2(1万6千字吐血推荐)

另外,Graphics对象paint方法中使用,该对象提供所有功能:绘制文本、线条、矩形、椭圆、多边形、图形等。...图片的背景依赖于图片的透明度来表示,我们可以使用三种图片透明度:不透明(opaque)、透明(transparent)和半透明(translucent): opapque—图片中的每个像素都是可见的 transparent...对于白色背景透明时,可以从它看到它下面的像素 translucent—半透明,它用于一个图片的边缘和Anti-aliasing图片 文件格式 图片格式有两种基本类型:raster(光栅)和vector...Graphics2D g = screen.getGraphics(); //屏幕中绘制背景和动画--屏幕中绘制出现(离屏绘制) draw(g); g.dispose...Graphics2D g = screen.getGraphics(); //屏幕中绘制背景和动画--屏幕中绘制出现(离屏绘制) draw(g); g.dispose

1.4K30

Golang语言情怀--第118期 全栈小游戏开发:第9节:精灵帧资源(SpriteFrame)

None — 无裁剪,使用原图 Trim Threshold 透明度阈值,默认为 1,取值范围为 0~1,会将透明设定值以下的像素裁减掉。...但是将贴图合并到大图中会修改原始贴图的 UV 坐标,如果在自定义 effect 中使用了贴图的 UV 坐标,这时 effect 中的 UV 计算将会出错,需要将贴图的 Packable 属性设置为 false...Sprite 图像时去除图像周围的透明像素,我们将看到刚好能把图像包裹住的约束框。...取消勾选,Sprite 节点的约束框会包括透明像素的部分。 Size Mode 用来将节点的尺寸设置为原图或原图裁剪透明像素后的大小,通常用于序列帧动画中保证图像显示为正确的尺寸。...这样动画在播放每个序列帧时,都将使用原始图片的尺寸,并保留图像周围透明像素的信息,这样才能正确显示绘制动画中的角色位移。

16410

复刻画龙产品之新春气泡兔

IT200 总结技术学习; 我 1024Code 在线编写代码; 我 掘金 分享技术文章; 我 Github 参与开源学习; 推荐几个好用的工具 var-conv 适用于VSCode IDE的代码变量名称快速转换工具...实现添加Sprite函数: Sprite是PIXI中一个重要的概念,最后的气泡兔就是由一个个的Sprite拼出来的,最后再把每一个Sprite添加到stage中: const setSprite = (...sprite.width = size; sprite.height = size; sprite.x = x * scale - size; sprite.y = y * scale...核心三步绘制气泡兔 3.1 加载剪影图片,获取像素数据 剪影图片是一张由黑色主体和透明背景或纯色背景构成的一张图片,我们要加载这张剪影图片并获取到每个像素的数据。...== 0) { // 纯黑 // TODO 绘制气泡 } } } 3.3 着手绘制气泡兔 获取到每一组的RGBA数据后,如果R、G、B均为 0 且透明度非 0,那么代表这个位置需要绘制气泡了

28720

iOS最全性能优化之25个建议

自iOS6起,除了UICollectionView的cells和补充views,你也应该在header和footer views中使用reuseIdentifiers 3.尽量把views设置为不透明...如果你有透明的Views你应该设置它们的opaque(不透明)属性为YES。...例如一个黑色半透明的可以设置为一个灰色不透明的View替代.原因是这会使系统用一个最优的方式渲染这些views。这个简单的属性IB或者代码里都可以设定。...如果图片是从远端服务加载的你不能控制图片大小,比如在下载前调整到合适大小的话,你可以在下载完成后,最好是用background thread,缩放一次,然后UIImageView中使用缩放后的图片。...正确设定背景图片 View里放背景图片就像很多其它iOS编程一样有很多方法: 使用UIColor的 colorWithPatternImage来设置背景色; view中添加一个UIImageView

1.4K20

为你重新系统梳理下, Web 体验优化中和图有关的那些事(万字长文)

使用场景是带有透明、半透明背景的图片,需要在网络传输中显示预览效果后展示全貌。上古时期的 IE6 不支持 PNG 半透明,需要用 hack 方法解决。PNG 体积比较大,非必须可用 JPG 替代。...GIF 的特性如下: 优秀的 LZW 算法保证质量的同时将体积变的更小。 可插入多帧实现动画效果。 可实现透明效果。 最多支持 256 色,故不适用于真彩色图片。...自适应 DPR 加载图片 高分辨率显示屏如 2x 上,页面中使用二倍图可以保证清晰度,但是当此页面低 DPR 设备打开时,我们只需要 50% 长宽的图片就能保证显示效果,而此时带宽开销却是一样的。...◎ 考虑 IMG Sprite “高对比度模式” 是一种 Windows 系统的设置主题,其用意是为了保证视力受损的用户,查看 Web 信息时提供方便。...由于 元素可以高对比度模式下显示,故而在此场景下,使用基于 标签的 Sprite 技术,可以得到比基于 CSS 背景图的 Sprite 更多的收益。

1.3K20

用 Compass 分分钟地做图片精灵

创建一张背景透明的图片。将一系列图标放到该图片中。图标间会留一些间距。裁切掉透明的空白部分。...: no-repeat; } .icon--facebook{ width: 图标宽度; height: 图标高度; background-position: 图标图片精灵中的位置; }....icon--flickr{ width: 图标宽度; height: 图标高度; background-position: 图标图片精灵中的位置; } 以后,新增或删除图标后,需要手动修改图片精灵图片...修改都是 psd 上改,然后导出。 如果用 Compass ,只需写如下几行代码 1 创建图片精灵图片。可以用 sprite-map($glob, [配置1,] [配置2,][ ...])...2 获取图标精灵的路径,获取图标的大小,以及图片精灵中的位置。Compass中也提供了一系列的方法获取这些值。

1.1K30

NES基本原理(五)高级玩法

cycle 256 第 256 个时钟周期,增加 v 的 Y 坐标值,表示这一行像素数据已经取完,该准备下一行的数据了,所以增加 Y 的值,Y 值增加稍显复杂,来看伪代码: if ((v & 0x7000...cycle 257-320 精灵相关,见后 cycle 321-336 取**下一行**背景需要的 2 个 tile,并且加载到 shift 寄存器。...NameTable 里面存放的是背景 tile 索引,而不是精灵的,精灵使用的 tile 索引存放在 OAM,之所以这里取精灵需要的 tile 也是这么个形式,是为了精灵可以重用背景的电路。...sprite 0 hit 先来了解什么叫做 sprite 0 hit,sprite 0 hit 就是说如果第 0 个精灵的不透明像素与背景透明像素重合的话,就将 0x2002 PPUSTATUS 状态寄存器的...具体的,就是金币的下方,金币是背景,且不是使用的通用背景色,sprite 0 也不是透明色,所以每一帧渲染到这一行的 sprite 0 所在的位置时就会触发 sprite 0 hit。

21610

ps切图必知必会

+delete(删除背景色,为透明的) 文件->存储为web和设备所用的格式(ctrl+alt+shift+s) 清除辅助线–>放大(Alt+鼠标滚轮)–>调出参考线–>矩形框选中元素–>复制(ctrl...,所有空白区域填充白色 Gif:支持透明,不支持半透明 PNG8:支持透明,不支持半透明 png24:支持透明,也支持半透明 如何抹掉psd原文件或者图片的文字 方法一:使用矩形框工具,空白区选一个区域...(复制粘贴的图标,要把背景色去掉为透明背景) 方法二:新建一个画布,右侧的图层,选中图标,复制所对应的图层到新建的那个画布当中去,然后依次的将图标进行有序的排放(注意的是将所有的图标图层一次性的复制过去.../img/10css-sprite.png") no-repeat;} .uncheck{ border:1px solid red; background-position:-33px -...如何在网页中抠图 合成雪壁图(css sprite) 使用雪碧图结合定位嵌入到网页中去

2.9K20
领券