繁体   English   中英

Nine-Patch Drawable vs Shape Drawable。哪个应该是首选?

[英]Nine-Patch Drawable vs Shape Drawable. Which should be preferred?

我和我的同事并行开发了两个应用程序,每个应用程序都有类似的样式。 这些应用程序的主视图背景是径向渐变。 他实现了他的九个补丁图像,我做了一个形状drawable。 两者都产生类似且可接受的结果

所以我的问题是,我们应该使用哪个? 内存消耗和性能之间是否需要权衡? 我想图像可能需要一些时间来加载,但是可绘制的形状需要更多的时间来绘制(由于计算)。 然后将它们存储在缓存中,这些处罚只会在它们第一次显示时发生,或者这些问题是否正在进行中?

形状可绘:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:startColor="#003472"
        android:endColor="#000034"
        android:gradientRadius="350"
        android:type="radial"/>
</shape>

九补丁:

在此输入图像描述

可绘制的形状非常适用于具有简单恒定颜色变化的渐变类图像。 另一方面,9-patch图像非常适用于具有大量细节的图像,在拉伸区域中具有恒定的颜色。

刚刚碰到这个问题。

如果您有涉及它的动画,请勿在XML中使用形状。 原因是缓存(特别是如果你正在使用硬件加速)将使它看起来真的“滞后”,因为屏幕不会经常刷新。

看看@Ivan Bartsov给出的答案。 但是通过仔细的代码分析,他得出结论,对于大多数一般情况,使用9补丁需要较少的进程使用比生成的渐变更少的内存。 因此,对于大多数情况,最好使用9个补丁。

看看他对模式细节的回答: 我应该使用什么来获得更好的性能,9补丁或可绘制的xml资源?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM