具体来说,当基于尺寸的限定符选择资源时,如果没有更匹配的资源,系统会使用比当前屏幕更小的屏幕资源(例如,必要时,大尺寸屏幕将会使用标准尺寸屏幕资源)。...九补丁文件基本是一个指定的可拉伸的二维PNG文件。当系统需要调整正在使用的位图的视图时,系统会拉伸九补丁位图,但仅延伸指定区域。...例如: :res/drawable-nodpi/icon.png :当系统使用这个文件夹中的icon.png位图时,它不会基于当前屏幕密度去调整该位图。...调整运行时创建的位图对象 如果应用程序创建一个内存中的位图(位图对象),系统认为这个位图是为基线中等密度屏幕设计的,默认情况下,在绘制时自动调整位图。...当位图没有指定密度特性时,系统采用“自动调整”技术。如果没有正确地考虑到当前屏幕密度,也没有指定位图的密度特性,自动调整会导致人为缩放,这与没有提供可替代资源时一样。
我们还在“视图”菜单中添加了跳转到下一个画板(End 或 fn →)和上一个画板(Home 或 fn ←)的选项。...现在,当您在工作区窗口中双击文档缩略图并且没有该文档的编辑权限时,我们会改为打开它供您在 Web 应用程序中查看。 我们改进了 PNG 导出,现在不透明位图不再包含 Alpha 通道。...在实时协作时,您现在可以在其他编辑器的光标中看到表情符号及其名称。 当您进入矢量编辑模式时,我们不再默认选择一个点。这样,当您选择路径中的最后一个点时,您就不会意外关闭形状。...修复了在靠近屏幕底部打开检查器中的颜色弹出框时可能会切断它的错误。 修复了隐藏图层列表时无法正确维护工具栏间距分布的错误。 修复了可能导致“文档设置”窗口中的“字体”选项卡无法可靠更新的错误。...修复了从图层列表导出带有前缀的切片时,该前缀将作为后缀应用的问题。 修复了如果对文本图层应用非纯色填充(如渐变)可能导致文本图层中的表情符号消失的错误。
有四种一般的尺寸: 小,一般大,大,超大 还有四种一般的像素密度: 低 (ldpi), 中 (mdpi), 高 (hdpi), 超高 (xhdpi) 为了声明你想要使用在不同屏幕上的布局和位图...创建不同的布局 ---- 为了在不同的屏幕尺寸上优化你的用户体验,你应该为每一个你想要支持的屏幕尺寸创建单独的文件 ....注意 : Android 会自动缩放你的布局,来适当的适应屏幕 ....如此,你针对不同屏幕尺寸的布局就不需要担心UI元素的绝对尺寸,而是将重点放在影响到用户体验的布局结构上来 (比如重要视图相对于相邻视图的尺寸和位置 )....更多的信息,见 设计用于多种屏幕 . 创建不同的位图 ---- 你应该针对一般的项目密度类型提供位图资源的恰当缩放版本: 低的, 中的, 高的 和 超高的项目密度 .
Android应用的UI 需要即时地加载多个位图。像ListView,GridView 和 ViewPager 组件 通常包含多个位图在屏幕上,更多可能性在关闭屏幕时,使用手指拨动,立即准备去显示。...为了有效的利用内存,这些组件在滚动时会回收重用它们的子视图控件。如果每个子控件都在AsyncTask中引发,那么当任务完成时就无法得到保证,导致被关联到的视图还没有被回收,就使用在其他子视图中了。...这节课将引导你,当加载多个图像时,使用一个内存和磁盘图像缓存来提高UI的响应性和流畅性。 使用一个内存缓存 一个内存缓存提供了快速访问位图的方式,更好的占用珍贵的应用程序内存。...为了对这节课划分段落, 先了解Android如何管理图片内存的演变过程: 在 Android 2.2 (API 级别 8) 及以下,当垃圾回收发生时,你的应用的线程会暂停。这导致了延迟,降低了性能。...当实现这样的控件类型时,你一定要确保UI仍然流畅,内存使用率在可控内和正确的处理并发(由于 GridView 回收它们的子视图 的方式导致) 要开始,下面是一个标准的 GridView 的实现,它拥有
目的是使用与新设备匹配的备用资源自动重新加载您的应用。 当Activity重启时,恢复之前的状态很重要。...image 当指定的属性(可折叠设备的折叠/展开时触发)发生变化时,MyActivity不会重启,而是会收到 onConfigurationChanged()的调用,在此方法中处理配置变更,更新视图布局...,附加在视图之上的位图也应可拉伸。...应用连续性 应用连续性是折叠屏手机的一大亮点,当在外屏和内屏之间切换时,应用保持运行状态,并会自动调整大小以匹配新的布局。...多活动窗口 当手机展开时,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备上通过元数据方式测试多活动窗口。
LeakCanary:Android和Java的内存泄漏检测库。 java.lang....这个位图是设备屏幕的大小,我们在创建它时发生了大量的内存不足(OOM)崩溃。 ? Java内存泄漏检测库LeakCanary介绍,了解?...我们没有想过从Java堆中分配位图。我们还不幸运。 我们看错了 位图大小不是问题。当内存几乎满的时候,OOM可以发生在任何地方。在创建大对象(如位图)的地方,这种情况更容易发生。...例如,在调用 Activity.onDestroy() 时,其视图层次结构及其关联的位图都应该是可垃圾回收的。如果在后台运行的线程持有对活动的引用,则无法回收相应的内存。...您可能需要购买、借用或窃取发生崩溃的特定设备。(并非所有设备都会出现泄漏!)您还需要弄清楚是什么导航序列触发了泄漏,可能是暴力造成的。 当OOM发生时转储堆。
11.游戏适屏 利用视图和屏幕宽高获取x和y坐标 当想要用按下人物一直动的效果时,View的onKeyDown和onKeyUp一起用 设置private...圆形碰撞,利用两圆的圆心距进行判定,当两圆的圆心距小于两圆半径之和时,判定发生了碰撞。 c。像素碰撞,以上两种方式碰撞不精确。但不推荐使用。...手机朝向x、y、z z>0手机屏幕朝上,z<0手机屏幕朝下 当手机是纵向屏幕, x>0当前手机左翻,x0当前手机下翻y<0上番 当手机是横向屏幕 x>0当前手机下翻,x0当前手机右翻y<0左番 5.9patch工具 6.代码实现截屏功能 原理:通过手动创建一张位图,通过此位图得到一个Canvas实例,利用得到的画布进行绘制, 绘制的图形都保存在最初创建的位图上...remove ,当存在的接触点被删除时响应的函数。 result, 每次时间步监听,如仍有触点存在则被响应。
建议: 该帧内运行的动画比较多 Measure,Layhout 表示在视图层次结构中 onLayout 和 onMeasure回调上所花的时间。大区段表示处理视图层次结构需要很长时间。...Measure用来确定View的宽高,当View为ViewGroup的时候还需要遍历子View,Layout在进行遍历摆放到正确的位置,当View嵌套层级变多或者自定义View时复写这两个方法时也要考虑这种情况...Draw 表示用于创建和更新视图显示列表的时间。如果竖条的此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行的工作很多。...,可以采用以下技巧: 确保位图的分辨率不会比位图的显示尺寸大很多。...当 Android 将其所有显示列表提交给 GPU 后,系统会发出最后一条命令,告诉图形驱动程序它已完成当前帧的处理。此时,驱动程序即可将更新后的图像显示到屏幕上。
● 自定义视图:两个新的 API ,在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。...五、随时随地低电耗模式 在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉的 CPU 和网络限制。...十二、新增的表情符号 Android N引入更多表情符号和表情符号相关功能,包括肤色表情符号和支持变量选择符。如果应用支持表情符号,请遵循以下准则,以便能充分利用这些表情符号相关功能优势。...十六、无障碍增强功能 (API参考 android.accessibilityservice.GestureDescription) Android N 现在针对新的设备设置直接在欢迎屏幕上提供“Vision...十七、密钥认证 使用硬件支持的密钥库,可更安全地在 Android 设备上创建、存储和使用加密密钥。
1、开始菜单 Windows 11 带有全新的开始菜单和任务栏体验,如下面的屏幕截图所示。 动态磁贴已被图标取代,类似于 Android 和 iOS。...作为重新设计的一部分,您可以在多个键盘布局之间切换。取消停靠时,Windows 允许您切换到小键盘布局,可以轻松地在屏幕上移动。 键盘顶部有一个新的“抓手区域”。...6、新的任务视图和虚拟桌面体验 在 Windows 11 中,微软正在重新设计任务视图屏幕,为虚拟桌面提供新的控件。 默认情况下,任务栏有任务视图按钮,您可以单击它以启动任务视图。...当您打开该功能时,它将恢复经典布局并删除额外的填充。 微软此前表示,额外的填充旨在更好地与现代 Windows 功能保持一致。...例如,我们获得了一个新的“高级视图”复选框,它将显示您的隐藏卷。还有一个新的复选框“当前状态”,当卷不可用于碎片整理时,它将包含更多详细信息。
● 自定义视图:两个新的 API ,在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。 ?...五 随时随地低电耗模式 在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉的 CPU 和网络限制。...十二 新增的表情符号 Android N引入更多表情符号和表情符号相关功能,包括肤色表情符号和支持变量选择符。如果应用支持表情符号,请遵循以下准则,以便能充分利用这些表情符号相关功能优势。...十六 无障碍增强功能 (API参考 android.accessibilityservice.GestureDescription) Android N 现在针对新的设备设置直接在欢迎屏幕上提供“Vision...十七 密钥认证 使用硬件支持的密钥库,可更安全地在 Android 设备上创建、存储和使用加密密钥。
然后CPU从内存中取出这个UI对象,再经过运算处理成多维的矢量图形,然后交给GPU去栅格化成位图,显示到屏幕上; 简单介绍一下矢量图和位图 矢量图:由一个函数来描述,这个函数描述了此图如何生成 位图:由像素点矩阵来描述...Android系统每隔16ms就重新绘制一次Activity,所以要求应用必须在16ms内完成屏幕刷新的全部逻辑操作,这样才能达到每秒60帧(60FPS),然而这个每秒帧数的参数由手机硬件所决定,现在大多数手机屏幕刷新率是...服务和其他系统服务一样是在Android系统的System进程里被启动并运行在其中的,主要负责统一管理设备中Android系统的帧缓冲区(Frame Buffer,简单理解为屏幕所显示出来的所有图形效果都是由它统一管理的...),在SurfaceFlinger服务启动的过程中会自动创建两个线程:其中一个线程用于监控控制台事件,另外一个线程则用于渲染系统的UI; Android应用程序为了能够将自己的UI绘制在系统的帧缓冲区上...简单来说就是当Android应用层在图形缓冲区中绘制好View层次结构后,应用层通过Binder机制与SurfaceFlinger通信并借助一块匿名共享内存会把这个图形缓冲区会被交给SurfaceFlinger
ViewModel 对配置的重新加载(比如屏幕旋转)具有“抗性” ↑ 把视图层(Activity 或 Fragment)的引用传递给 ViewModel 是有 相当大的风险 的。...由于 ViewModel 对 Android 一无所知,它也就不知道 Android 是多么频繁的干掉视图层的小伙伴。...保存 Activity 的状态 Activity 的状态是指在 Activity 消失时重新创建屏幕内容所需的信息,Activity 消失意味着被销毁或进程被终止。...旋转屏幕是最明显的情况,我们已经在 ViewModel 部分提到了。保存在 ViewModel 的状态是安全的。 但是,你可能需要在其他 ViewModel 也消失的场景中恢复状态。...但是,如果用户旋转手机,则新的 Activity 被创建并开始观察这个字段。当对 LiveData 的观察开始时,Activity 会立即收到已经使用过的值,这将导致消息再次显示!
视图View的背景就是一个Drawable对象,在视图需要进行绘制而调用draw函数时,内部的一部分实现会将调用委托给背景属性mBackground这个Drawable对象的draw函数来完成背景的绘制...,而当对视图调用setBackgroundXXXX方法进行背景设置时会根据不同的函数名来创建不同的Drawable派生类。...BitmapDrawable 位图可绘制类 位图可绘制类。在构造时指定一个Bitmap对象或者一个位图文件。位图显示时需要指定:像素和设备尺寸的映射,显示的位置,显示模式三种属性。...public void setTargetDensity(int density) 系统会根据密度公式:** 位图尺寸 * density / 屏幕的密度 ** 来将位图显示在具体的设备上。...当为某个视图设置了一个StateListDrawable类型的背景时,那么当视图处理某个state时,背景就会根据特定的state不同而显示不同的背景。
要实现每秒 60 帧,代表每个帧的竖条需要保持在此线以下。当竖条超出此线时,可能会使动画出现暂停。 该工具通过加宽对应的竖条并降低透明度来突出显示超出 16 毫秒阈值的帧。...同步和上传 表示将位图信息上传到 GPU 所花的时间。大区段表示应用花费大量的时间加载大量图形。 绘制 表示用于创建和更新视图显示列表的时间。...XFer 表示将位图信息上传到 GPU 所花的时间。大区段表示应用花费大量的时间加载大量图形。此区段在搭载 Android 4.0 或更低版本的设备上不可见。...更新 表示用于创建和更新视图显示列表的时间。如果竖条的此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行的工作很多。 表 2. Android 4.0 和 5.0 中的竖条区段。...直观呈现 GPU 过度绘制 这是开发者选项中的另一个功能,通过对您的界面进行彩色编码来帮助您识别过度绘制。当您的应用在同一帧中多次绘制相同像素时,便会发生过度绘制。
且会与新的按钮动画相结合,当点击播放 / 暂停按钮或前进后退按钮时,它们会有新的动画,动画感觉非常优美和流畅,并提供了很好的细节。 ...3、屏幕截图新增【复制并删除】 当截取屏幕截图,对其进行编辑后点击“完成”时,出现了一个新选项,可以“复制和删除”屏幕截图,而不仅仅是删除它。...像FuboTV 是一项以体育为重点的直播电视流媒体服务,具有多视图功能,最多允许同时进行四个流。...而糖果是在注册时,通过用户选择兴趣标签自动匹配一个avatar形象。极大的降低了创建成本。 ...用户可以在社交应用中直接套用自己的Omoji个性形象,亦可为联系⼈创建Omoji,来电时即可显示对方的专属形象。或是在拍摄时使用自己的个性形象拍摄。
Android 13 围绕我们的核心主题打造,即隐私和安全、开发者生产力,以及支持平板电脑和 大屏幕设备。...您可以通过官方文档了解更多关于如何 开始为大屏幕进行优化 的信息,并查阅我们的 大屏幕开发者资源。 下面让我们深入了解今天的 Android 13 开发者预览版 2 中的新内容。...△ COLRv1 矢量表情符号 (左) 和位图表情符号 蓝牙低功耗 (LE) 音频 - 低功耗 (Low Energy, LE) 音频是下一代的无线音频,用于取代经典蓝牙,并实现新的用例和连接拓扑结构。...应用兼容性 在发布新的平台版本时,我们优先考虑应用的兼容性,让系统更新的体验更快、更顺畅。...现在您也可以开始进行 兼容性测试,并确定接下来需要完成的工作。我们建议大家尽早安排这些工作,以便在 Android 13 Beta 1 推出时发布与之兼容的更新。
当实现一个视图时,不需要继承这个方法;相反,你应该实现onDraw(Canvas)方法。...(译者注: 如何监听android的屏幕滑动停止事件) 参数 velocityY Y方向的初始速率。正值表示手指/光标向屏幕下方滑动,而内容将向上滚动。..., boolean immediate) 当组里的某个子视图需要被定位在屏幕的某个矩形范围时,调用此方法。...能见度的值的范围是0.0(没有消失)到1.0(完全消失)之间。缺省的执行返回值为0.0或者1.0,而不是他们中间的某个值。滚动时子类需要重载这个方法来提供一个平缓的渐隐的实现。...能见度的值的范围是0.0(没有消失)到1.0(完全消失)之间。缺省的执行返回值为0.0或者1.0,而不是他们中间的某个值。滚动时子类需要重载这个方法来提供一个平缓的渐隐的实现。
领取专属 10元无门槛券
手把手带您无忧上云