我想制作如下布局:
为此我需要三个这样的背景:
我需要结合所有这些和
在运行时我必须改变每个
的背景颜色所以我想做自定义linearlayout。
但我不知道如何做到这一点。
我已经检查了制作三角形和平行四边形布局的一些示例,但我想合并所有三个视图。请提供一些有用的链接,并提供代码示例,而不是提供参考。
先谢谢你。 :)
我试过相对布局。对于remoteview,我试过这个:
ColorFilter cf = new PorterDuffColorFilter(-15032095, Mode.MULTIPLY);
Drawable d= context.getResources().getDrawable(R.drawable.panel1);
d.mutate();
d.setColorFilter(cf);
我尝试了以下代码:
rv.setInt(R.id.rl_noti_main, "setColorFilter", d);
rv.setInt(R.id.rl_noti_main, "setBackgroundDrawable", -15032095);
rv.setInt(R.id.rl_noti_main, "setBackgroundResources",d);
答案 0 :(得分:1)
尝试框架布局或相对布局。您需要重叠每个视图以实现无法在线性布局中完成的操作。将每个图像设为具有透明区域的矩形,该部分需要重叠。
答案 1 :(得分:0)
选项1
考虑制作自定义视图。您将扩展View
类并覆盖onDraw
方法。在onDraw
方法中,您将绘制特殊形状。您还可以创建一种方法来设置每个部件的颜色。首先阅读documentation。它给出了一个非常全面的概述。然后查找有关绘制和创建自定义视图的一些教程。跟着你,你应该准备好自己尝试一下。
这里有几个教程,但我相信你可以找到更多。
选项2
将您的三种形状创建为白色图像(或者可能为9-patch图像,具体取决于您需要为不同的布局调整大小的方式)。你不想要的颜色部分你可以透明。我甚至可以将中间图像作为高大的矩形(或者甚至是简单的矩形视图)并将其他两个图像分层放在顶部。)然后使用RelativeLayout
将图像堆叠或重叠在一起。之后使用Drawable.setColorFilter
以编程方式更改颜色。请参阅以下链接。对于很多人来说,这似乎是成功的。