2013-06-05 54 views
3

下面是我需要做的解释。它应该从图库中加载一张照片并将其显示在屏幕上。然后用户可以将公司的吉祥物的小图片拖入加载的照片中,最后保存。将图片添加到另一个

这个想法是,如果你从画廊应用程序中搜索照片,你可以找到原始照片以及吉祥物看起来就像它的修改过的照片。

问题是,我不确定要使用哪些类来完成此操作。我实际上将照片位图加载到ImageView中,但是我不知道如何将吉祥物添加到位图中,我应该使用Canvas?或者是什么程序?

回答

4

您可以从原始位图(以您的图库图像为基准)创建画布作为基础,并在其上绘制吉祥物,并将缩略图另存为另一个存储文件。

您必须计算绘画难度的位置。

Bitmap base; // Get it with your own approach, this refers to gallery image 
Bitmap mascot; // Get it with your own approach, this refers to mascot image 

Canvas canvas = new Canvas(base); 
//0f and 0f refers to coordinates of drawing, you may want to do some calculation here. 
canvas.drawBitmap(mascot, 0f, 0f, null); 

// At this point base will have the mascot drawn, you may want to display it or save it somewhere else. 
+0

我目前正在显示ImageView上的'base'位图。如上所述,使用画布绘制“吉祥物”后,我需要显示它,是否可以通过ImageView完成,还是必须创建自定义视图? –

+0

执行完上述所有代码后,您可以只做一个ImageView.setImageBitmap(base),然后您将更新新图像。另外保存为外部存储中的另一个文件,以便您以后可以检索它。编辑:抱歉,没有正确地阅读你的问题,你可以在你的屏幕上有两个imageview,第一个将使用原始图像设置,并且在完成绘图后,您可以将基本设置为第二个图像视图,当然再次执行setImageBitmap基于第一个ImageView也会产生效果。 –

1

你需要做的图像第一可变的,然后在其上添加其他图像,并获得使其immutable-

bitmap3=mutableimage3.copy(Bitmap.Config.ARGB_4444,true);// mutable image. 


bitmap3=mutableimage3.copy(Bitmap.Config.ARGB_4444,false);//immutable