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

创建支持多种屏幕尺寸Android应用

具体来说,基于尺寸限定符选择资源,如果没有更匹配资源,系统会使用比当前屏幕更小屏幕资源(例如,必要尺寸屏幕将会使用标准尺寸屏幕资源)。...九补丁文件基本是一个指定可拉伸二维PNG文件。系统需要调整正在使用位图视图,系统会拉伸九补丁位图,但仅延伸指定区域。...例如: :res/drawable-nodpi/icon.png :系统使用这个文件夹中icon.png位图,它不会基于当前屏幕密度去调整该位图。...调整运行时创建位图对象 如果应用程序创建一个内存中位图位图对象),系统认为这个位图是为基线中等密度屏幕设计,默认情况下,在绘制自动调整位图。...位图没有指定密度特性,系统采用“自动调整”技术。如果没有正确地考虑到当前屏幕密度,也没有指定位图密度特性,自动调整会导致人为缩放,这与没有提供可替代资源一样。

2.6K60

Sketch for mac v79中文激活版 添加新快捷键以提升效率

我们还在“视图”菜单中添加了跳转到下一个画板(End 或 fn →)和上一个画板(Home 或 fn ←)选项。...现在,您在工作区窗口中双击文档缩略图并且没有该文档编辑权限时,我们会改为打开它供您在 Web 应用程序中查看。 我们改进了 PNG 导出,现在不透明位图不再包含 Alpha 通道。...在实时协作,您现在可以在其他编辑器光标中看到表情符号及其名称。 您进入矢量编辑模式,我们不再默认选择一个点。这样,您选择路径中最后一个点,您就不会意外关闭形状。...修复了在靠近屏幕底部打开检查器中颜色弹出框可能会切断它错误。 修复了隐藏图层列表无法正确维护工具栏间距分布错误。 修复了可能导致“文档设置”窗口中“字体”选项卡无法可靠更新错误。...修复了从图层列表导出带有前缀切片时,该前缀将作为后缀应用问题。 修复了如果对文本图层应用非纯色填充(如渐变)可能导致文本图层中表情符号消失错误。

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

Android教程-保存数据-支持不同屏幕

有四种一般尺寸: 小,一般,超大 还有四种一般像素密度: 低 (ldpi), 中 (mdpi), 高 (hdpi), 超高 (xhdpi) 为了声明你想要使用在不同屏幕布局和位图...创建不同布局 ---- 为了在不同屏幕尺寸上优化你用户体验,你应该为每一个你想要支持屏幕尺寸创建单独文件 ....注意 : Android 会自动缩放你布局,来适当适应屏幕 ....如此,你针对不同屏幕尺寸布局就不需要担心UI元素绝对尺寸,而是将重点放在影响到用户体验布局结构上来 (比如重要视图相对于相邻视图尺寸和位置 )....更多信息,见 设计用于多种屏幕 . 创建不同位图  ---- 你应该针对一般项目密度类型提供位图资源恰当缩放版本: 低, 中, 高 和 超高项目密度 .

61020

Android训练课程(Android Training) - 高效显示图片

Android应用UI 需要即时地加载多个位图。像ListView,GridView 和 ViewPager 组件 通常包含多个位图屏幕上,更多可能性在关闭屏幕,使用手指拨动,立即准备去显示。...为了有效利用内存,这些组件在滚动时会回收重用它们视图控件。如果每个子控件都在AsyncTask中引发,那么任务完成就无法得到保证,导致被关联到视图还没有被回收,就使用在其他子视图中了。...这节课将引导你,加载多个图像,使用一个内存和磁盘图像缓存来提高UI响应性和流畅性。 使用一个内存缓存 一个内存缓存提供了快速访问位图方式,更好占用珍贵应用程序内存。...为了对这节课划分段落, 先了解Android如何管理图片内存演变过程: 在 Android 2.2 (API 级别 8) 及以下,垃圾回收发生,你应用线程会暂停。这导致了延迟,降低了性能。...实现这样控件类型,你一定要确保UI仍然流畅,内存使用率在可控内和正确处理并发(由于 GridView 回收它们视图 方式导致) 要开始,下面是一个标准 GridView 实现,它拥有

2.9K00

三星折叠屏开发者设计指南揭秘

目的是使用与新设备匹配备用资源自动重新加载您应用。 Activity重启,恢复之前状态很重要。...image 指定属性(可折叠设备折叠/展开触发)发生变化时,MyActivity不会重启,而是会收到 onConfigurationChanged()调用,在此方法中处理配置变更,更新视图布局...,附加在视图之上位图也应可拉伸。...应用连续性 应用连续性是折叠屏手机亮点,当在外屏和内屏之间切换,应用保持运行状态,并会自动调整大小以匹配新布局。...多活动窗口 手机展开,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备上通过元数据方式测试多活动窗口。

4K40

Java内存泄漏检测库LeakCanary介绍,了解?

LeakCanary:Android和Java内存泄漏检测库。 java.lang....这个位图是设备屏幕大小,我们在创建发生了大量内存不足(OOM)崩溃。 ? Java内存泄漏检测库LeakCanary介绍,了解?...我们没有想过从Java堆中分配位图。我们还不幸运。 我们看错了 位图大小不是问题。内存几乎满时候,OOM可以发生在任何地方。在创建对象(如位图地方,这种情况更容易发生。...例如,在调用 Activity.onDestroy() ,其视图层次结构及其关联位图都应该是可垃圾回收。如果在后台运行线程持有对活动引用,则无法回收相应内存。...您可能需要购买、借用或窃取发生崩溃特定设备。(并非所有设备都会出现泄漏!)您还需要弄清楚是什么导航序列触发了泄漏,可能是暴力造成OOM发生转储堆。

94720

Android游戏编程之从零开始》笔记「建议收藏」

11.游戏适屏 利用视图屏幕宽高获取x和y坐标 想要用按下人物一直动效果,ViewonKeyDown和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, 每次时间步监听,如仍有触点存在则被响应。

1.2K21

Code For Better 谷歌开发者之声——使用 GPU 渲染模式分析工具进行分析

建议: 该帧内运行动画比较多 Measure,Layhout 表示在视图层次结构中 onLayout 和 onMeasure回调上所花时间。大区段表示处理视图层次结构需要很长时间。...Measure用来确定View宽高,View为ViewGroup时候还需要遍历子View,Layout在进行遍历摆放到正确位置,View嵌套层级变多或者自定义View复写这两个方法也要考虑这种情况...Draw 表示用于创建和更新视图显示列表时间。如果竖条此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行工作很多。...,可以采用以下技巧: 确保位图分辨率不会比位图显示尺寸很多。... Android 将其所有显示列表提交给 GPU 后,系统会发出最后一条命令,告诉图形驱动程序它已完成当前帧处理。此时,驱动程序即可将更新后图像显示到屏幕上。

77220

使用 GPU 渲染模式分析工具进行分析

建议: 该帧内运行动画比较多 Measure,Layhout 表示在视图层次结构中 onLayout 和 onMeasure回调上所花时间。大区段表示处理视图层次结构需要很长时间。...Measure用来确定View宽高,View为ViewGroup时候还需要遍历子View,Layout在进行遍历摆放到正确位置,View嵌套层级变多或者自定义View复写这两个方法也要考虑这种情况...Draw 表示用于创建和更新视图显示列表时间。如果竖条此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行工作很多。...,可以采用以下技巧: 确保位图分辨率不会比位图显示尺寸很多。... Android 将其所有显示列表提交给 GPU 后,系统会发出最后一条命令,告诉图形驱动程序它已完成当前帧处理。此时,驱动程序即可将更新后图像显示到屏幕上。

1.2K10

深度了解Android 7.0 ,你准备好了吗?

● 自定义视图:两个新 API ,在通知中使用自定义视图可以充分利用系统装饰元素,如通知标题和操作。...五、随时随地低电耗模式 在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉 CPU 和网络限制。...十二、新增表情符号 Android N引入更多表情符号表情符号相关功能,包括肤色表情符号和支持变量选择符。如果应用支持表情符号,请遵循以下准则,以便能充分利用这些表情符号相关功能优势。...十六、无障碍增强功能 (API参考 android.accessibilityservice.GestureDescription) Android N 现在针对新设备设置直接在欢迎屏幕上提供“Vision...十七、密钥认证 使用硬件支持密钥库,可更安全地在 Android 设备上创建、存储和使用加密密钥。

2.8K10

Windows 11这19个新功能,你都知道吗?

1、开始菜单 Windows 11 带有全新开始菜单和任务栏体验,如下面的屏幕截图所示。 动态磁贴已被图标取代,类似于 Android 和 iOS。...作为重新设计一部分,您可以在多个键盘布局之间切换。取消停靠,Windows 允许您切换到小键盘布局,可以轻松地在屏幕上移动。 键盘顶部有一个新“抓手区域”。...6、新任务视图和虚拟桌面体验 在 Windows 11 中,微软正在重新设计任务视图屏幕,为虚拟桌面提供新控件。 默认情况下,任务栏有任务视图按钮,您可以单击它以启动任务视图。...您打开该功能,它将恢复经典布局并删除额外填充。 微软此前表示,额外填充旨在更好地与现代 Windows 功能保持一致。...例如,我们获得了一个新“高级视图”复选框,它将显示您隐藏卷。还有一个新复选框“当前状态”,卷不可用于碎片整理,它将包含更多详细信息。

2.7K20

Win11 这 19 个新功能,你都用上了吗?

1、开始菜单 Windows 11 带有全新开始菜单和任务栏体验,如下面的屏幕截图所示。 动态磁贴已被图标取代,类似于 Android 和 iOS。...作为重新设计一部分,您可以在多个键盘布局之间切换。取消停靠,Windows 允许您切换到小键盘布局,可以轻松地在屏幕上移动。 键盘顶部有一个新“抓手区域”。...6、新任务视图和虚拟桌面体验 在 Windows 11 中,微软正在重新设计任务视图屏幕,为虚拟桌面提供新控件。 默认情况下,任务栏有任务视图按钮,您可以单击它以启动任务视图。...您打开该功能,它将恢复经典布局并删除额外填充。 微软此前表示,额外填充旨在更好地与现代 Windows 功能保持一致。...例如,我们获得了一个新“高级视图”复选框,它将显示您隐藏卷。还有一个新复选框“当前状态”,卷不可用于碎片整理,它将包含更多详细信息。

21.1K30

深度了解Android 7.0 ,你准备好了吗?

● 自定义视图:两个新 API ,在通知中使用自定义视图可以充分利用系统装饰元素,如通知标题和操作。 ?...五 随时随地低电耗模式 在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉 CPU 和网络限制。...十二 新增表情符号 Android N引入更多表情符号表情符号相关功能,包括肤色表情符号和支持变量选择符。如果应用支持表情符号,请遵循以下准则,以便能充分利用这些表情符号相关功能优势。...十六 无障碍增强功能 (API参考 android.accessibilityservice.GestureDescription) Android N 现在针对新设备设置直接在欢迎屏幕上提供“Vision...十七 密钥认证 使用硬件支持密钥库,可更安全地在 Android 设备上创建、存储和使用加密密钥。

1.4K30

扒一扒安卓渲染原理

然后CPU从内存中取出这个UI对象,再经过运算处理成多维矢量图形,然后交给GPU去栅格化成位图,显示到屏幕上; 简单介绍一下矢量图和位图 矢量图:由一个函数来描述,这个函数描述了此图如何生成 位图:由像素点矩阵来描述...Android系统每隔16ms就重新绘制一次Activity,所以要求应用必须在16ms内完成屏幕刷新全部逻辑操作,这样才能达到每秒60帧(60FPS),然而这个每秒帧数参数由手机硬件所决定,现在大多数手机屏幕刷新率是...服务和其他系统服务一样是在Android系统System进程里被启动并运行在其中,主要负责统一管理设备中Android系统帧缓冲区(Frame Buffer,简单理解为屏幕所显示出来所有图形效果都是由它统一管理...),在SurfaceFlinger服务启动过程中会自动创建两个线程:其中一个线程用于监控控制台事件,另外一个线程则用于渲染系统UI; Android应用程序为了能够将自己UI绘制在系统帧缓冲区上...简单来说就是Android应用层在图形缓冲区中绘制好View层次结构后,应用层通过Binder机制与SurfaceFlinger通信并借助一块匿名共享内存会把这个图形缓冲区会被交给SurfaceFlinger

95310

ViewModel 和 LiveData:为设计模式打 Call 还是唱反调?

ViewModel 对配置重新加载(比如屏幕旋转)具有“抗性” ↑ 把视图层(Activity 或 Fragment)引用传递给 ViewModel 是有 相当风险 。...由于 ViewModel 对 Android 一无所知,它也就不知道 Android 是多么频繁干掉视图小伙伴。...保存 Activity 状态 Activity 状态是指在 Activity 消失时重新创建屏幕内容所需信息,Activity 消失意味着被销毁或进程被终止。...旋转屏幕是最明显情况,我们已经在 ViewModel 部分提到了。保存在 ViewModel 状态是安全。 但是,你可能需要在其他 ViewModel 也消失场景中恢复状态。...但是,如果用户旋转手机,则新 Activity 被创建并开始观察这个字段。对 LiveData 观察开始,Activity 会立即收到已经使用过值,这将导致消息再次显示!

3K30

Android各种Drawable类详解

视图View背景就是一个Drawable对象,在视图需要进行绘制而调用draw函数,内部一部分实现会将调用委托给背景属性mBackground这个Drawable对象draw函数来完成背景绘制...,而视图调用setBackgroundXXXX方法进行背景设置时会根据不同函数名来创建不同Drawable派生类。...BitmapDrawable 位图可绘制类 位图可绘制类。在构造指定一个Bitmap对象或者一个位图文件。位图显示需要指定:像素和设备尺寸映射,显示位置,显示模式三种属性。...public void setTargetDensity(int density) 系统会根据密度公式:** 位图尺寸 * density / 屏幕密度 ** 来将位图显示在具体设备上。...为某个视图设置了一个StateListDrawable类型背景,那么视图处理某个state,背景就会根据特定state不同而显示不同背景。

1.5K20

检查 GPU 渲染速度和过度绘制

要实现每秒 60 帧,代表每个帧竖条需要保持在此线以下。竖条超出此线,可能会使动画出现暂停。 该工具通过加宽对应竖条并降低透明度来突出显示超出 16 毫秒阈值帧。...同步和上传 表示将位图信息上传到 GPU 所花时间。大区段表示应用花费大量时间加载大量图形。 绘制 表示用于创建和更新视图显示列表时间。...XFer 表示将位图信息上传到 GPU 所花时间。大区段表示应用花费大量时间加载大量图形。此区段在搭载 Android 4.0 或更低版本设备上不可见。...更新 表示用于创建和更新视图显示列表时间。如果竖条此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行工作很多。 表 2. Android 4.0 和 5.0 中竖条区段。...直观呈现 GPU 过度绘制 这是开发者选项中另一个功能,通过对您界面进行彩色编码来帮助您识别过度绘制。应用在同一帧中多次绘制相同像素,便会发生过度绘制。

1.6K20

ISUX「八月」行业设计趋势速递

且会与新按钮动画相结合,点击播放 / 暂停按钮或前进后退按钮,它们会有新动画,动画感觉非常优美和流畅,并提供了很好细节。 ...3、屏幕截图新增【复制并删除】  截取屏幕截图,对其进行编辑后点击“完成”,出现了一个新选项,可以“复制和删除”屏幕截图,而不仅仅是删除它。...像FuboTV 是一项以体育为重点直播电视流媒体服务,具有多视图功能,最多允许同时进行四个流。...而糖果是在注册,通过用户选择兴趣标签自动匹配一个avatar形象。极大降低了创建成本。 ...用户可以在社交应用中直接套用自己Omoji个性形象,亦可为联系⼈创建Omoji,来电即可显示对方专属形象。或是在拍摄使用自己个性形象拍摄。

3.5K10

欢迎体验 | Android 13 开发者预览版 2

Android 13 围绕我们核心主题打造,即隐私和安全、开发者生产力,以及支持平板电脑和 大屏幕设备。...您可以通过官方文档了解更多关于如何 开始为大屏幕进行优化 信息,并查阅我们屏幕开发者资源。 下面让我们深入了解今天 Android 13 开发者预览版 2 中新内容。...△ COLRv1 矢量表情符号 (左) 和位图表情符号 蓝牙低功耗 (LE) 音频 - 低功耗 (Low Energy, LE) 音频是下一代无线音频,用于取代经典蓝牙,并实现新用例和连接拓扑结构。...应用兼容性 在发布新平台版本,我们优先考虑应用兼容性,让系统更新体验更快、更顺畅。...现在您也可以开始进行 兼容性测试,并确定接下来需要完成工作。我们建议大家尽早安排这些工作,以便在 Android 13 Beta 1 推出发布与之兼容更新。

59810

Android中文API——ScrollView

实现一个视图,不需要继承这个方法;相反,你应该实现onDraw(Canvas)方法。...(译者注: 如何监听android屏幕滑动停止事件) 参数 velocityY Y方向初始速率。正值表示手指/光标向屏幕下方滑动,而内容将向上滚动。..., boolean immediate) 组里某个子视图需要被定位在屏幕某个矩形范围,调用此方法。...能见度范围是0.0(没有消失)到1.0(完全消失)之间。缺省执行返回值为0.0或者1.0,而不是他们中间某个值。滚动子类需要重载这个方法来提供一个平缓渐隐实现。...能见度范围是0.0(没有消失)到1.0(完全消失)之间。缺省执行返回值为0.0或者1.0,而不是他们中间某个值。滚动子类需要重载这个方法来提供一个平缓渐隐实现。

4.5K30
领券