2

我想为我的 android 应用程序创建一个带有渐变的九个补丁按钮背景。我想知道渐变是如何工作的。我认为操作系统必须弄清楚如何在按钮拉伸时应用渐变,我猜测 9 补丁文件中没有信息(图形矢量方程)?那么这个问题有解决方案吗?另外,抖动等怎么样。我已经创建了一些九补丁按钮背景,但它们都没有渐变。然而。提前致谢。

4

2 回答 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 回答