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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...