在Android中合并两个图像(第一个图像的背景和第二个图像的文本,具有模糊效果)

时间:2015-09-06 03:00:55

标签: android android-studio

我有两张照片? 如何在android中的第一张图像的顶部显示第二张图像(第二张图像的背景必须是可见的,第一张图像的文字应该是模糊的)

换句话说,我想使用带有模糊效果的第一张图像的背景和第二张图像的文字

我还附上了两张样本图片 我使用的是Android Studio 1.3.2

1st image

2nd image

2 个答案:

答案 0 :(得分:1)

对容器使用FrameLayout。现在,将ImageView放入此FrameLayout并调整其alpha值。因此,您的布局结构将如下所示

FrameLayout (Container)
|__ImageView1 (Background)
|__ImageView2 (Text)

对于模糊效果,您可以在互联网上使用任何Android图像处理库。

答案 1 :(得分:0)

创建图像的位图并使用Canvas

进行测量
   ImageView image = (ImageView) findViewById(R.id.imageView1);
          Drawable drawableFore = getResources().getDrawable(R.drawable.foreg);
          Drawable drawableBack = getResources().getDrawable(R.drawable.backg);

          Bitmap bitmapFore = ((BitmapDrawable) drawableFore).getBitmap();
          Bitmap bitmapBack = ((BitmapDrawable) drawableBack).getBitmap();

          Bitmap scaledBitmapFore = Bitmap.createScaledBitmap(bitmapFore, 35, 35, true);
          Bitmap scaledBitmapBack = Bitmap.createScaledBitmap(bitmapBack, 45, 45, true);

          Bitmap combineImages = overlay(scaledBitmapBack, scaledBitmapFore);

          image.setImageBitmap(combineImages);

叠加方法在这里..

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2)
{
 try
 {
   Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(),  bmp1.getConfig());
   Canvas canvas = new Canvas(bmOverlay);
   canvas.drawBitmap(bmp1, new Matrix(), null);
   canvas.drawBitmap(bmp2, 0, 0, null);
   return bmOverlay;
 } catch (Exception e)
 {
    // TODO: handle exception
  e.printStackTrace();
  return null;
 }
}