android – 垂直条纹背景的XML?

我想设置一个查看背景,这是一个垂直条纹的常规网格.条纹在两种颜色之间交替出现. (例如,在单行中,可能有6个像素的浅灰色,然后是2个像素的深灰色,重复填充宽度.)

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

ShapeDrawable bg = new ShapeDrawable(new RectShape());
int[] pixels = new int[] { 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可绘制,不使用位图资源?

解决方法

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

在所需的三个任务中,只有两个可以在没有任何代码的情况下完成.您可以将条纹图案的基础创建为< layer-list>两个或更多个<形状>项目.您还可以使用<位图>创建重复的图块模式. XML可绘制.诀窍是必需的中间步骤:<位图>不会接受另一个可绘制的源值(只有一个图像),所以没有办法链接两个没有一点代码的干预创建一个位图(如你所写的).

我希望看到瓦片模式也适用于更多的绘图,还有一个给我一个在代码中完全创建模式的样例:)

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...