我想为我的 android 应用程序创建一个带有渐变的九个补丁按钮背景。我想知道渐变是如何工作的。我认为操作系统必须弄清楚如何在按钮拉伸时应用渐变,我猜测 9 补丁文件中没有信息(图形矢量方程)?那么这个问题有解决方案吗?另外,抖动等怎么样。我已经创建了一些九补丁按钮背景,但它们都没有渐变。然而。提前致谢。
问问题
5194 次
2 回答
2
为什么要为此使用 9 补丁?9-patches 通过复制/复制像素来拉伸图像的一个区域。这不适用于渐变。您是否考虑过使用GradientDrawable代替?
<shape android:shape="rectangle">
<gradient android:startColor="..." android:endColor="..." />
</shape>
请参阅形状可绘制对象。
于 2011-02-28T10:33:15.120 回答
0
至于你关于抖动的问题,我之前的回复没有解决这个问题。
恐怕你必须从你的应用程序代码中启用抖动,据我所知,没有办法从 XML 中做到这一点。您可以setDither(true)
在可绘制对象上使用调用,如此处所述。
这将产生更好的渐变,因为它减轻了您在渐变图像上看到的条带伪影。不过,我还没有在形状可绘制对象上尝试过这个,只是 PNG 文件。
此外,如果您的目标是 Gingerbread,则可能值得阅读Bitmap quality, banding and dithering。显然他们偷偷改变了 2.3 来解决这些问题。
于 2011-02-28T13:09:14.603 回答