Cómo agregar cuadros a la imagen?

Estoy intentando conseguir la funcionalidad de los marcos, de modo que si proveo una imagen después de capturar / que recupera de la galería, he hecho esta pieza, ahora donde estoy pegado es How can i merge two images with respect to frame image accordingly!!

Ahora la solución para combinar dos imágenes se da claramente aquí y aquí

Pero no están explicando el comportamiento de ajustar una imagen con otra tal que en mi caso, he aquí algunos ejemplos:

Imagen con frame1

Imagen con frame2

I am already using Libraries like picasso and EasyImage so if they can help?

Editar:

Ejemplo de cuadro de prueba Marco de prueba

Yo hice el ejemplo. Por favor, consulte este repositorio. https://github.com/nshmura/TestFrame/

Frame clase Frame fusiona el mapa de bits de la imagen y el mapa de bits de la imagen.

 public class Frame { //filename of frame private String mFrameName; //Rect of picture area in frame private final Rect mPictureRect; //degree of rotation to fit picture and frame. private final float mRorate; public Frame(String frameName,int left, int top, int right, int bottom, float rorate) { mFrameName = frameName; mPictureRect = new Rect(left, top, right, bottom); mRorate = rorate; } public Bitmap mergeWith(Context context, Bitmap pictureBitmap) { Bitmap frameBitmap = AssetsUtil.getBitmapFromAsset(context, mFrameName); Bitmap.Config conf = Bitmap.Config.ARGB_8888; Bitmap bitmap = Bitmap.createBitmap(frameBitmap.getWidth(), frameBitmap.getHeight(), conf); Canvas canvas = new Canvas(bitmap); Matrix matrix = getMatrix(pictureBitmap); canvas.drawBitmap(pictureBitmap, matrix, null); canvas.drawBitmap(frameBitmap, 0, 0, null); return bitmap; } Matrix getMatrix(Bitmap pictureBitmap) { float widthRatio = mPictureRect.width() / (float) pictureBitmap.getWidth(); float heightRatio = mPictureRect.height() / (float) pictureBitmap.getHeight(); float ratio; if (widthRatio > heightRatio) { ratio = widthRatio; } else { ratio = heightRatio; } float width = pictureBitmap.getWidth() * ratio; float height = pictureBitmap.getHeight() * ratio; float left = mPictureRect.left - (width - mPictureRect.width()) / 2f; float top = mPictureRect.top - (height - mPictureRect.height()) / 2f; Matrix matrix = new Matrix(); matrix.postRotate(mRorate); matrix.postScale(ratio, ratio); matrix.postTranslate(left, top); return matrix; } } 

Utilizar de esta manera:

 //This is sample picture. //Please take picture form gallery or camera. Bitmap pictureBitmap = AssetsUtil.getBitmapFromAsset(this, "picture.jpg"); //This is sample frame. // the number of left, top, right, bottom is the area to show picture. // last argument is degree of rotation to fit picture and frame. Frame frameA = new Frame("frame_a.png", 113, 93, 430, 409, 4); Bitmap mergedBitmap = frameA. mergeWith(this, pictureBitmap); //showing result bitmap ImageView imageView = (ImageView) findViewById(R.id.image); imageView.setImageBitmap(mergedBitmap); 

El resultado está abajo:

Introduzca aquí la descripción de la imagen

  • Retener completamente WebView en fragmento tras rotación
  • HasStableIds () en ListView expandible?
  • Diferente ancho de diseño dentro de RecyclerView y LinearLayout normal
  • ExpandableListView onExpand siempre desplaza el grupo expandido hacia arriba
  • Temporizador de rectángulo de dibujo de Android con animación
  • Cómo extender la etiqueta de inclusión en Android
  • RecyclerView con elementos personalizados
  • Android: WebView no puede mostrar el signo de porcentaje '%'
  • Determina qué VISTA en varias vistas tiene gesto (doble clic, deslizar hacia la izquierda, deslizar hacia la derecha, etc.)?
  • Registrarse en la transmisión local dentro de una vista personalizada
  • Android ExpandableListView Ocultar grupo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.