Android中的叠加图像
Posted
技术标签:
【中文标题】Android中的叠加图像【英文标题】:Overlay images in Android 【发布时间】:2011-07-25 15:03:12 【问题描述】:我有两张图片想要合并为一张。 (例如,“street.png”顶部的“House.png”)
我如何在 android 中实现这一点?我只想合并图像并将它们导出到文件中。
This example 将图像设置为 ImageView 但我希望将其导出。 This other example 在 Android 中不起作用,因为这些类不可用。
【问题讨论】:
【参考方案1】:我会尝试类似:
public static Bitmap mergeImages(Bitmap bottomImage, Bitmap topImage)
final Bitmap output = Bitmap.createBitmap(bottomImage.getWidth(), bottomImage
.getHeight(), Config.ARGB_8888);
final Canvas canvas = new Canvas(output);
final Paint paint = new Paint();
paint.setAntiAlias(true);
canvas.drawBitmap(bottomImage, 0, 0, paint);
canvas.drawBitmap(topImage, 0, 0, paint);
return output;
(未测试,我只是在这里写的,可能有一些简单的错误)
基本上你要做的是创建第三个空位图,在其上绘制底部图像,然后在其上绘制顶部图像。
至于保存到文件,这里有几个例子:Save bitmap to location
【讨论】:
【参考方案2】:你可以这样做......
public Bitmap Overlay(Bitmap Bitmap1, Resources paramResources, Bitmap Bitmap2, int alpha)
Bitmap bmp1 = Bitmap.createScaledBitmap(Bitmap2, Bitmap1.getWidth(), Bitmap1.getHeight(), true);
Bitmap bmp2 = Bitmap.createBitmap(Bitmap1.getWidth(), Bitmap1.getHeight(), Bitmap1.getConfig());
Paint localPaint = new Paint();
localPaint.setAlpha(alpha);
Canvas localCanvas = new Canvas(bmp2);
Matrix localMatrix = new Matrix();
localCanvas.drawBitmap(Bitmap1, localMatrix, null);
localCanvas.drawBitmap(bmp1, localMatrix, localPaint);
bmp1.recycle();
System.gc();
return bmp2;
【讨论】:
以上是关于Android中的叠加图像的主要内容,如果未能解决你的问题,请参考以下文章
在 customView 中的 ImageView 上叠加许多图像视图