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