2011-08-18 74 views
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); 

设置背景色,但这只能通过图像的透明部分可以看到,所以它改变了颜色,在我的情况下,油漆泼溅的。另外,如果用于前景色的颜色与应用程序的主屏色相匹配,则在我的示例中,图示图像具有黑色前景,而我的Android应用程序具有黑色屏幕,则只有彩色油漆图示是可见,所以它看起来像整个图像正在改变颜色。

+0

如何剪切图像。如何仅为该部分设置背景。 –

+0

如果这回答你的问题,请记住点击绿色的勾号。 –

+0

不,这不是我的要求。但是,无论如何谢谢你,只需+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); 
相关问题