我想设置一个视图背景,它是由垂直条纹的常规网格组成的。这些条纹在两种颜色之间交替显示。(例如,对于一行数据,在六个像素点后是深灰色的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可绘制对象的方法来实现这个,而不使用位图资源?
BitmapShader
代码片段。我在尝试使用 XML 实现时遇到了困难,也不知道可以使用 shader 方法。 - Edward Dale