如何制作覆盖不同颜色的圆形图像

时间:2011-08-18 10:29:00

标签: android image

我有一个圆形图像。它在列表视图中显示。在列表视图的每个项目中都有一个文本和这个图像。这个圆形图像有一种颜色。如何使这个图像的某些部分覆盖任何其他颜色。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

确保您拥有的图像位于透明背景上。然后,剪切出您想要改变颜色的图像的一部分。然后,在你的程序中调用setBackgroundColor(int myColor),你设置的颜色将显示出来。

编辑:使用Photoshop或您喜欢的图像编辑程序,通过确保图像位于透明背景上来准备图像。然后剪掉你想要改变颜色的部分。将图像保存在Android项目的drawable-hdpi文件夹中。然后,将背景颜色设置为您想要的颜色,它将通过切口显示,例如

ImageView icon = new ImageView(context);
icon.setId(1);      
icon.setImageResource(R.drawable.paint_splat);      
icon.setBackgroundColor(pickedColour);

在上面的示例中,我的paint_splat图像如下所示:

enter image description here

白色区域不是白色 - 它们是半透明的。如果您不知道如何操作,则需要在将要使用的任何图像编辑程序中阅读图像编辑。 然后是最后一次电话:

icon.setBackgroundColor(pickedColour);

设置背景颜色,但这只能通过图像的半透明部分看到,因此它会改变颜色(在我的情况下)油漆色板的颜色。

另外,如果用于foregound的颜色与应用程序的主屏幕颜色相匹配,在我的情况下,splat图像有一个黑色前景,而我的Android应用程序有一个黑色屏幕,那么只有彩色颜料splat是可见的所以看起来整个图像都在改变颜色。

答案 1 :(得分:0)

如果要在运行时更改图像的背景颜色......

然后使用这个简单的代码...

它工作得很好....

 final ImageView image=(ImageView)findViewById(R.id.image_view);

   int number1=(int) (Math.random()*255);
   int number2=(int) (Math.random()*255);
   int number3=(int) (Math.random()*255);

   int image_colour=android.graphics.Color.rgb(number1, number2, number3);
   image.setColorFilter(image_colour);