XML中的垂直条纹背景?

我想设置一个垂直条纹的规则网格视图背景。 条纹在两种颜色之间交替。 (例如,在一行中,可能有6个浅灰色像素,后面是2个深灰色像素,重复以填充宽度。)

使用位图(作为资源或在代码中生成)很容易做到这一点。 例如:

ShapeDrawable bg = new ShapeDrawable(new RectShape()); int[] pixels = new int[] { 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFF999999, 0xFF999999}; Bitmap bm = Bitmap.createBitmap(pixels, 8, 1, Bitmap.Config.ARGB_8888); Shader shader = new BitmapShader(bm, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); bg.getPaint().setShader(shader); view.setBackgroundDrawable(bg); 

有没有办法做到这一点严格的XML可绘制,而不使用位图资源?

Solutions Collecting From Web of "XML中的垂直条纹背景?"

不幸的,但我很确定答案是否定的。

在所需的三个任务中,只有两个任务可以完成。 您可以将条纹图案的底部创build为两个或更多<shape>项目的<layer-list> 。 您还可以使用<bitmap> XML drawable来创build重复图块模式。 诀窍是所需的中间步骤: <bitmap>不会接受另一个可绘制的源值(只有一个图像),所以没有办法链接两个没有一点点代码的干预创build一个位图(就像你有书面)。

我很希望看到更多的可绘制的平铺模式,以及+1给我一个完整的代码创build模式的示例:)